常用命名
- 初始化一個倉庫
git init
- 添加文件
git add file1
- 查看修改
git diff --cached == git status
- 提交文件
git commit -m ""
提交完文件后揖盘, 會生成版本號
- 創(chuàng)建分支
git branch dev
以當(dāng)前分支建立一個dev分支
- 切換分支
git checkout dev // 切換到dev分支上 git checkout -b dev 創(chuàng)建并切換
- 合并兩個分支之間的代碼
git checkout master
git merge dev 合并dev 和master的內(nèi)容
- 合并代碼的時候,有沖突厦取, 需要解決沖突破讨, 命令
git diff
編輯完沖突文件,然后commit
- 提交了commit后洼怔,可以用gitk 看合并的歷史
gitk 查看編輯詳情
- 刪除分支
git branch -d dev
- 撤銷一個合并
git reset --hard HEAD
git reset --hard ORIG_HEAD
快速向前合并
通常一個合并會產(chǎn)生一個合并提交,把兩個父分支里的每一行內(nèi)容都合并進來
但是左驾,如果當(dāng)前分支和另一個分支沒有內(nèi)容上的差異茴厉,git會執(zhí)行一個快速向前操作泽台,git不創(chuàng)建任何新的提交
- 查看git 歷史
git log v2.5
git log master
git log file
git log origin file
git log -p 顯示補丁信息
git log --stat 日志統(tǒng)計
- 比較提交
git diff master dev
git diff HEAD
- 獲取遠程代碼
git fetch 抓取代碼,但是不會與本地的代碼合并
創(chuàng)建標(biāo)簽
git tag stable-1 1b2e23231
rebase的方式合并
- 先本地commit
git add .
git commit
- 保存分支獲取遠程
git checkout dev
git rebase origin
這個會把本地提交的取消矾缓,放到patch里面去,然后更新遠程稻爬,然后在用補丁與遠程合并
3 沖突
出現(xiàn)沖突嗜闻,先解決沖突,解決完沖突后桅锄,用git add 去更新這些文件的索引
無需要commit
然后執(zhí)行
git rebase --continue
這樣git就會
繼續(xù)引用apply余下的補丁
可以用
git rebase --abort 來終止 這樣的話 dev 會回到rebase開始前的狀態(tài)
- 儲藏
git stash "work in progress for foo feature"
git stash list 儲藏隊列
高級用法
拉取代碼,并且合并代碼
git pull // 拉取并合并
git fetch // 只拉取,不會合并
git merge origin/分支名
以遠程分支昼捍,新建本地分支
git fetch -b 分支名 origin/分支名