1、git 配置
git config --global user.name 'XXXX' //設置全局用戶名
git config--global user.email 'XXXXX' //設置全局用戶郵箱
2惩激、git 基本操作(* 表示任意字符)
git init // 創(chuàng)建倉庫
git add * //將文件加入暫存區(qū)
git commit -m 'XXXXX' //將暫存區(qū)的文件提交到倉庫中
git status // 查看狀態(tài)
git diff (*) // 查看全部文件*(指定文件)的具體修改
git log // 查看歷史提交記錄
git cherry-pick <commit id> // 將指定的提交(commit)應用于當前分支。
git stash // 暫時將未提交的變化移除
git stash pop // 移入上次未提交且被移除的內容
3蟹演、版本回退
git reset --hard HEAD^ //回退到上一個版本
git reset --hard HEAD^^ //回退到上上個版本
git reset --hard 'commit_id' //回退到指定版本號
git push --force // 遠程分支回退
git reflog //查看想要回退的版本號
git reset HEAD * //對其已進入暫存區(qū)的修改
git rever HEAD~3 // 丟棄最近的三個commit风钻,把狀態(tài)恢復到最近的第四個commit,并且提交一個新的commit來記錄這次改變酒请。
git rever -n master~5..master~2 //丟棄從最近的第五個commit(包含)到第二個(不包含),但是不自動生成commit骡技,這個revert僅僅修改working tree和index。
git rm //刪除文件
注意:reset與revert的區(qū)別
git rever :
(1) 是用一次新的commit來回滾之前的commit
(2) 是用一次逆向的commit '中和'之前的提交羞反,因此日后合并老的branch時布朦,導致這部分改變不會再次出現(xiàn)
(3) 是HEAD繼續(xù)前進,只是新的commit的內容和要revert的內容正好相反昼窗,能夠抵消要被revert的內容
git reset :
(1) 是直接刪除指定的commit
(2) 把某些commit在某個branch上刪除是趴,因而和老的branch再次merge時,這些被回滾的commit應該還會被引入
(3) 是把HEAD向后移動了一下
4澄惊、git分支管理
git branch //查看本地分支信息
git branch Dev //創(chuàng)建分支
git checkout dev //創(chuàng)建并進入分支
git merge dev //合并分支到當前分支
git merge --no-ff dev //禁止快進式合并
git branch -D dev //刪除分支
git branch -r -D origin/dev //刪除遠程分支
5唆途、遠程倉庫
git clone url //克隆遠程倉庫到本地
git remote add origin url //添加遠程倉庫
git push -u origin master //推送到遠程分支(-u 將本地的master和遠程的master關聯(lián)起來)
git fetch //獲取遠程倉庫的更新到本地富雅,但是不合并
git pull //獲取更新內容后自動合并
git remote //查看遠程分支
6、建立本地分支與遠程分支的關聯(lián)
git branch --set-upstream 'local_branch' origin/'remote_branch'
7肛搬、修改本地倉庫對應的遠程倉庫的地址
git remote 'set_url' origin url
8吹榴、 ==cherry-pick== 的用法
// 將指定的提交commitHash,應用于當前分支
git cherry-pick <commit id>
// 將feature分支的最近一次提交滚婉,轉移到當前分支
git cherry-pick uat
注: git cherry-pick命令的參數(shù)图筹,不一定是提交的哈希值,分支名也是可以的让腹,表示轉移該分支的最新提交
(1) 舉例來說远剩,現(xiàn)有代碼倉庫有master
和uat
兩個分支:
a - b - c - d master
\
e - f - g uat
(2) 現(xiàn)將提交f
應用到 master
分支
// 切換到 master 分支
git checkout master
// cherry-pick 操作
git cherry-pick f
// 此時代碼倉庫會變成
a - b - c - d - f master
\
e - f - g uat
(3) cherry-pick
支持一次轉移多個提交
// 將 A 和 B 兩個提交應用到當前分支
git cherry-pick <HashA> <HashB>