Git 備忘錄

整理了一下工做中經常使用的 Git 操做,持續更新中...
 
merge單個文件
例如 B分支想要合併A分支的某個文件
首先,咱們切換到B分支  git checkout branch B
以後,咱們checkout A 分支的a文件,git checkout --patch  A  a路徑 
最後,彈出修改確認提示:
Apply this hunk to index and worktree [y,n,q,a,d,/,K,g,e,?]?
在彈出的都選  y 便可。
若是不想應用更改的,在彈出的都選 n 便可。
最後提交代碼完成更新合併同步。
 
撤銷上一次操做
git reset --hard HEAD^
HEAD^的意思是上一個版本,也能夠寫成HEAD~1
若是你進行了2次commit,想都撤回,可使用HEAD~2
參數:
--mixed 
不刪除工做空間改動代碼,撤銷commit,而且撤銷git add . 操做
這個爲默認參數,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是同樣的。
--soft  
不刪除工做空間改動代碼,撤銷commit,不撤銷git add . 
--hard
刪除工做空間改動代碼,撤銷commit,撤銷git add . 
注意完成這個操做後,就恢復到了上一次的commit狀態。
 
撤銷 commit 操做,但保留代碼
git reset --soft HEAD^
僅僅是撤回commit操做,代碼仍然保留
 
查看文件修改
git log --name-status 每次修改的文件列表, 顯示狀態
git log --name-only 每次修改的文件列表
git log --stat 每次修改的文件列表, 及文件修改的統計
git whatchanged 每次修改的文件列表
git whatchanged --stat 每次修改的文件列表, 及文件修改的統計
git show 顯示最後一次的文件改變的具體內容
git show -5 顯示最後 5 次的文件改變的具體內容
git show commitid 顯示某個 commitid 改變的具體內容
 
給本地和遠程倉庫重命名
1.重命名本地分支
git branch -m new-name #若是當前在要重命名的分支
git branch -m old-name new-name #若是當前不在要重命名的分支
2.刪除遠程舊名稱分支而且push新名稱分支
git push origin :old-name new-name
3.關聯新名稱的本地分支和遠程分支
git push origin -u new-name
 
修改遠程倉庫地址
git remote set-url origin [url]
 
本地分支關聯遠程倉庫上游分支
git branch --set-upstream-to=origin/remote_branch  your_branch
 
分支重命名
1. 本地分支重命名(尚未推送到遠程)
git branch -m oldName newName
2. 遠程分支重命名(已經推送遠程-假設本地分支和遠程對應分支名稱相同)
a. 重命名遠程分支對應的本地分支
git branch -m oldName newName
b. 刪除遠程分支
git push --delete origin oldName
c. 上傳新命名的本地分支
git push origin newName
d. 把修改後的本地分支與遠程分支關聯
git branch --set-upstream-to origin/newName
 
commit 規範
feat:新功能(feature)
fix:修補bug
docs:文檔(documentation)
style: 格式(不影響代碼運行的變更)
refactor:重構(即不是新增功能,也不是修改bug的代碼變更)
test:增長測試
chore:構建過程或輔助工具的變更
 
合併commit
合併commit的簡便方法,就是先撤銷過去5個commit,而後再建一個新的。
$ git reset HEAD~5
$ git add .
$ git commit -am "Here's the bug fix that closes #28"
$ git push --force
 
git tag
git tag <name>就能夠打一個新標籤:
用命令git tag查看全部標籤:
默認標籤是打在最新提交的commit上的
也能夠找到歷史提交的commit id,而後打上
還能夠建立帶有說明的標籤,用-a指定標籤名,-m指定說明文字:
git tag -a v0.1 -m "version 0.1 released" 1094adb
用命令git show <tagname>能夠看到說明文字:
 
修改 commit 註釋內容
順便說一下,若是commit註釋寫錯了,只是想改一下注釋,只須要:
git commit --amend
此時會進入默認vim編輯器,修改註釋完畢後保存就行了
 
Git基本經常使用命令
mkdir XX
建立一個空目錄 XX指目錄名
pwd
顯示當前目錄的路徑
git init
把當前的目錄變成能夠管理的git倉庫,生成隱藏.git文件
git diff  XX
查看XX文件修改了哪些內容
git reset
–hard HEAD^ 或者 git reset  –hard HEAD~ 回退到上一個版本 (若是想回退到100個版本,使用git reset –hard HEAD~100 )
cat XX
查看XX文件內容
git reflog
查看歷史記錄的版本號id
git checkout — XX 
把XX文件在工做區的修改所有撤銷
git remote add origin https://aaa
關聯一個遠程庫
git push –u origin master
第一次要用-u 之後不須要,把當前master分支推送到遠程庫
 
git branch –d dev
刪除dev分支
git branch -D dev
刪除未合併過的dev分支
git stash
把當前的工做隱藏起來 等之後恢復現場後繼續工做
git stash list
查看全部被隱藏的文件列表
git stash apply
恢復被隱藏的文件,可是內容不刪除
git stash drop
刪除文件
git stash pop
恢復文件的同時 也刪除文件
git push origin master
把master分支推送到遠程庫對應的遠程分支上
 
推薦閱讀
相關文章
相關標籤/搜索