常用 git 命令匯總

1、git 配置

git config --global user.name 'XXXX'     //設(shè)置全局用戶名

git config--global user.email 'XXXXX'   //設(shè)置全局用戶郵箱

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)應(yīng)用于當(dāng)前分支。

git stash      //  暫時將未提交的變化移除

git stash pop  //  移入上次未提交且被移除的內(nèi)容

3、版本回退

git reset --hard HEAD^      //回退到上一個版本

git reset --hard HEAD^^     //回退到上上個版本

git reset --hard 'commit_id'    //回退到指定版本號
git push --force        // 遠(yuǎn)程分支回退

git reflog      //查看想要回退的版本號

git reset HEAD *    //對其已進(jìn)入暫存區(qū)的修改

git rever HEAD~3    // 丟棄最近的三個commit,把狀態(tài)恢復(fù)到最近的第四個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時,導(dǎo)致這部分改變不會再次出現(xiàn)

(3) 是HEAD繼續(xù)前進(jìn),只是新的commit的內(nèi)容和要revert的內(nèi)容正好相反,能夠抵消要被revert的內(nèi)容


git reset :
(1) 是直接刪除指定的commit

(2) 把某些commit在某個branch上刪除,因而和老的branch再次merge時,這些被回滾的commit應(yīng)該還會被引入

(3) 是把HEAD向后移動了一下

4、git分支管理

git branch          //查看本地分支信息

git branch Dev      //創(chuàng)建分支

git checkout dev    //創(chuàng)建并進(jìn)入分支

git merge dev       //合并分支到當(dāng)前分支

git merge --no-ff dev   //禁止快進(jìn)式合并 

git branch -D dev   //刪除分支

git branch -r -D origin/dev   //刪除遠(yuǎn)程分支

5、遠(yuǎn)程倉庫

git clone url       //克隆遠(yuǎn)程倉庫到本地

git remote add origin url       //添加遠(yuǎn)程倉庫

git push -u origin master //推送到遠(yuǎn)程分支(-u 將本地的master和遠(yuǎn)程的master關(guān)聯(lián)起來)

git fetch   //獲取遠(yuǎn)程倉庫的更新到本地,但是不合并

git pull    //獲取更新內(nèi)容后自動合并

git remote  //查看遠(yuǎn)程分支

6、建立本地分支與遠(yuǎn)程分支的關(guān)聯(lián)

git branch --set-upstream 'local_branch' origin/'remote_branch'

7、修改本地倉庫對應(yīng)的遠(yuǎn)程倉庫的地址

git remote 'set_url' origin url

8、 ==cherry-pick== 的用法

// 將指定的提交commitHash,應(yīng)用于當(dāng)前分支
git cherry-pick <commit id> 

// 將feature分支的最近一次提交,轉(zhuǎn)移到當(dāng)前分支
git cherry-pick uat  

注: git cherry-pick命令的參數(shù),不一定是提交的哈希值,分支名也是可以的,表示轉(zhuǎn)移該分支的最新提交

(1) 舉例來說,現(xiàn)有代碼倉庫有masteruat兩個分支:

 a - b - c - d              master
         \
           e - f - g        uat

(2) 現(xiàn)將提交f應(yīng)用到 master分支

// 切換到 master 分支
git checkout master

// cherry-pick 操作
git cherry-pick f

// 此時代碼倉庫會變成
 a - b - c - d - f          master
         \
           e - f - g        uat

(3) cherry-pick支持一次轉(zhuǎn)移多個提交

//  將 A 和 B 兩個提交應(yīng)用到當(dāng)前分支
git cherry-pick <HashA> <HashB>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容