git學習筆記

 1、git回滾代碼

一、本地代碼沒有提交到暫存區
git checkout -- file
二、本地代碼已經提交到暫存區
git reset HEAD file //把文件從暫存區撤回到工做區
git checkout -- file //再把工做區文件回滾
三、已經commit到版本庫的代碼
git reset --hard HEAD^ //回滾到上一個版本就是HEAD^,上上一個版本就是HEAD^^
git reset --hard HEAD~100 //回滾到以前100個版本
git reset --hard 版本號 //回滾到某個版本號git

2、建立分支

一、概念
master指向提交
HEAD指向的就是當前分支
二、建立分支dev,並切換到dev分支
git checkout -b dev
--- git checkout命令加上-b參數表示建立並切換,至關於如下兩條命令:
git branch dev //建立分支
git checkout dev //切換分支
git checkout -b branch-name origin/branch-name //建立分支和遠程關聯,這樣pull的時候不用指定分支信息(用於多人協做,他人建立的分支)
三、查看當前分支
git branch
四、合併分支
git checkout master //切換分支
git merge dev //合併分支
五、刪除分支
git branch -d dev
git branch -D dev //強行刪除
六、Fast forward模式
在沒有衝突狀況下使用git merge dev會觸發Fast forward模式,它會自動合併並提交,合併後看不出來曾經作過合併
git merge --no-ff -m "merge with no-ff" dev // --no-ff會禁用Fast forward模式
七、建立本地分支和遠程分支的連接關係
git branch --set-upstream branch-name origin/branch-namegithub

3、常規命令

一、查看日誌
git log --graph --pretty=oneline --abbrev-commit
二、分支工做區「存儲」
git stash
git stash list
git stash pop //恢復tash內容並刪除
git stash apply //恢復stash內容,可是不刪除
git stash drop
三、遠程命令
git remote -v //查看遠程信息
四、標籤
git tag v1.0 //建立標籤
git tag v0.9 6224937 // 建立某個ci的標籤
git tag -a v0.1 -m "version 0.1 released" 3628164 //建立有說明文字的標籤
git tag //查看全部標籤
git show v0.9 //查看標籤信息
git tag -d v0.1 //刪除標籤
git push origin <tagname> //建立的標籤都只存儲在本地,不會自動推送到遠程,推送標籤到遠程
git push origin --tags //一次性推送所有還沒有推送到遠程的本地標籤
刪除遠程的標籤
(1)git tag -d v0.9 //先刪除本地
(2)git push origin :refs/tags/v0.9 //刪除遠程app

五、拉取代碼pull fetchfetch

git pull 至關於 git fetch + merge日誌

4、相關配置

一、忽略git目錄要提交的文件有兩種狀況
(1)忽略沒有在遠程倉庫上的文件orm

在開發目錄下建立.gitignore文件,相關配置可參考https://github.com/github/gitignoreci

(2)已經在遠程倉庫,須要忽略本地的開發

git update-index --assume-unchanged 文件名rem

取消:git update-index --no-assume-unchanged 文件名it

二、配置別名git config --global alias.st statusgit config --global alias.co checkoutgit config --global alias.ci commitgit config --global alias.br branchgit config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

相關文章
相關標籤/搜索