Git 常用命令總結,將會持續更新

aehyok發表於2021-05-06

平常在windows電腦上使用Git Extensions 工具比較多,大部分的常用指令都可以通過點點點就可以完成。在mac電腦上的話使用sourcetree工具。但有時候也會直接通過git命令,很多時候也是通過百度來臨時查閱,所以總結下來方便自己,也方便可能需要的你。

1、基本命令

  • 1.1、 生成SSH公鑰和私鑰,公鑰要複製配置到git伺服器上的
    // 生成SSH金鑰
    ssh-keygen -o   
    
    // .pub字尾名為公鑰,另外一個為私鑰
    cat ~/.ssh/id_rsa.pub 
    
  • 1.2、 git config 配置提交使用者名稱和使用者郵箱
    git config --global user.name "aehyok"
    git config --global user.email "aehyok@163.com"
    
    // 配置好後可通過這個來檢視
    git config -l 
    
  • 1.3、 建立專案後如何提交到倉庫
    // 建立專案後到指定的專案資料夾中初始化git
    git init 
    
  • 1.4、 將檔案新增到暫存區
    // 將新增或修改的檔案提交到暫存區
    git add . 
    
    // 將監控已經被add進暫存區的檔案,會將被修改的檔案再次提交到暫存區
    // 或者是
    git add -u 
    
    // 則是git add .和 git add -u 兩個命令的集合 
    // 或者是
    git add -A 
    
  • 1.5、 提交到本地倉庫(即自己當前電腦的程式碼倉庫)
    // 提交到本地倉庫
    git commit -m ' feat: 初始化專案'   
    
  • 1.6、 設定遠端倉庫地址(即程式碼要提交到哪裡的伺服器)
    // 當然也可以使用ssh 連結
    git remote add github.origin https://github.com/aehyok/demo.git   
    
  • 1.7、 推送到遠端伺服器(注意一點,首次推送要設定追蹤)
    // 設定本地分支追蹤遠端分支、、、之後就可以直接git push
    git push --set-upstream origin main
    
  • 1.8、 修改檔名會忽略大小寫,預設都是忽略了,所以修改檔名大小寫是無效的
    // (檢視是否忽略大小寫) true則設定了忽略
    git config core.ignorecase
    
    // 後面加上false則直接可設定不忽略,修改檔名大小寫後會生效
    git config core.ignorecase false  
    
  • 1.9、修改資料夾名字大小寫的問題
    // (修改前先將Test資料夾備份並修改為TestTemp<一個臨時資料夾名字而已>,
    // 然後執行命令
    git rm Test 
    // 再將備份資料夾名字修改為需要的資料夾即可
    --------------另外一種簡單粗暴的方式-----------------
    // 還是先備份好要刪除的檔案,然後將檔案刪除,提交到倉庫。
    // 完事後將備份的檔案複製回來,然後修改檔案大小寫,再提交即可。
    
  • 1.10、 是將遠端主機的最新內容拉到本地 ,使用者在檢查了以後決定是否合併到工作本機分支中。
    git fetch
    //更多基本操作
    //https://www.cnblogs.com/runnerjack/p/9342362.html
    
  • 1.11、同樣一個本地倉庫可以設定多個遠端倉庫,然後通過不同的git push github.origin
     // 設定個github遠端倉庫
     git remote add github.origin https://github.com/aehyok/demo.git
     
     // 設定個gitee遠端倉庫
     git remote add gitee.origin https://github.com/aehyok/demo.git
     
     // 推送到github
     git push github.origin
     
     //  推送到gitee
     git push gitee.origin
    
  • 1.12、克隆程式碼庫
     // 目前沒指定分支,預設為master
     git clone https://github.com/aehyok/demo.git
     
     // 指定分支名稱
     git clone -b dev  https://github.com/aehyok/demo.git
    

2、分支管理

  • 2.1、 建立分支
    // 切換到基礎分支
    git checkout main
    
    // 根據 切換到的main分支,建立dev分支並切換到dev分支
    git checkout -b dev
    
  • 2.2、 檢視分支
    // 檢視本地分支
    git branch
    
    // 檢視本地分支和遠端分支,如果不存在需要git fetch一下
    git branch -a
    
    // 檢視遠端分支
    git branch -r 
    
  • 2.3、 修改分支名稱
    // 修改當前本地分支的名稱
    git branch -m develop-lqm
    
    // 也可以修改指定的分支  原分支名稱  新分支名稱
    git branch -m develop-lam develop-lqm
    
  • 2.4、 刪除本地分支和刪除遠端分支
    // 先切換到其他分支
    git checkout dev1.3.4
    
    // 刪除本地分支
    git branch -d dev
    
    // 如果刪除不了,可以進行強制刪除
    git branch -D dev 
    
    // 有必要的情況下,刪除遠端分支但是要謹慎使用
    git push origin --delete dev    
    

3、合併程式碼

  • 3.1、 將某個提交,任何跟倉庫所有分支的commit 合併到當前分支
    // (正常情況直接合併成功,可能存在重複圖需要手動解決)
    git cherry-pick  commitid
    
    // 正常情況直接push即可,手動解決衝突需要commit 再進行push
    git push
    
    // 擴充套件閱讀:還可以一起提交commitid-A到commitid-B 之間所有的內容修改
    // http://www.ruanyifeng.com/blog/2020/04/git-cherry-pick.html
    
  • 3.2、 當前分支dev的程式碼提交push成功,此時想合併到main分支上
    // 先切換到main分支
    git checkout main
    
    // 將dev分支的變更拉取到main分支上來
    git merge dev
    
    // 合併完成,即可推送到遠端伺服器
    git push -u origin main
    

4、tag標籤

  • 4.1、新增一個tag,並推送到遠端倉庫
    git tag -a 3.11.3.001 -m "release 3.11.3.001"
    git push origin 3.11.3.001
    
  • 4.2、 刪除一個tag
    git tag -d 3.11.3.001
    git push origin :refs/tags/3.11.3.001  
    
  • 4.3、 檢視tag
    git tag
    
  • 4.4、在某個commit上打tag
    git tag test_tag c809ddbf83939a89659e51dc2a5fe183af384233    
    git push origin test_tag    //!!!本地tag推送到線上
    
  • 4.5、 根據tag建立分支
    https://www.cnblogs.com/senlinyang/p/9455426.html
    git branch newbranch 3.11.3.001
    // 切換到分支
    git checkout newbranch
    

相關文章