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

平常在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 "[email protected]"
    
    // 配置好後可通過這個來查看
    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 //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
    //更多基本操作
    ////www.cnblogs.com/runnerjack/p/9342362.html
    
  • 1.11、同樣一個本地倉庫可以設置多個遠程倉庫,然後通過不同的git push github.origin
     // 設置個github遠程倉庫
     git remote add github.origin //github.com/aehyok/demo.git
     
     // 設置個gitee遠程倉庫
     git remote add gitee.origin //github.com/aehyok/demo.git
     
     // 推送到github
     git push github.origin
     
     //  推送到gitee
     git push gitee.origin
    
  • 1.12、克隆程式碼庫
     // 目前沒指定分支,默認為master
     git clone //github.com/aehyok/demo.git
     
     // 指定分支名稱
     git clone -b dev  //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 之間所有的內容修改
    // //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創建分支
    //www.cnblogs.com/senlinyang/p/9455426.html
    git branch newbranch 3.11.3.001
    // 切換到分支
    git checkout newbranch
    
Tags: