git使用

常用命令

git status // 查看本地代碼狀態
git add fileName.cpp // 添加代碼到緩存區
git commit -m '提交內容的備註' // 提交代碼到本地倉庫
git checkout -b branchName // 不加-b就是普通切換分支
git fetch -p // 同步遠端分支狀態
git pull -r origin branchName // fetch遠端代碼到本地,並且以rebase的方式合併代碼
git push origin branchName // 更新本地代碼到遠端
  • 分支命名規範 ownerName/featureName (e.g. haroldyao/watchaddfriends)
  • 建議較多頻次的提交代碼到本地倉庫,以便能夠更靈活的保存或撤銷修改。(應付需求更改)

開發流程

  • 從 master 切出一個新分支
git init
git checkout -b haroldyao/watchaddfriends
  • 開發一些新功能,然後提交
git status
git add fileName.cpp // 挑選需要提交的文件,或者全部提交*
git commit -m '提交備註'
git push origin haroldyao/watchaddfriends
  • 如果功能開發完成,可以發起一個CodeReview流程
  • 如果代碼測試通過,合併到 master,然後準備上線
// 冗餘版 合併到 master
git checkout master 
git pull -r origin master
git checkout qixiu/newFeature
git rebase master // 處理衝突
git checkout master
git merge qixiu/newFeature
git push origin master

// 精簡版 合併到 master
git checkout qixiu/newFeature
git pull -r origin master // 將master的代碼更新下來,並且rebase處理衝突
git push origin master // 將本地代碼更新到遠端
  • 注意事項
  1. 不要在master合併代碼,保證master的可用性很重要。
  2. 確保在正確的分支執行正確的操作。
  3. 無論是處理衝突還是更新遠端代碼,請保有敬畏之心。

其他實用git技巧

1. git reflog,查看操作記錄
2. 壓縮提交記錄
  • 使用 git log 找到起始 commitID
  • git reset commitID,切記不要用 --hard參數
  • 重新 git add && git commit
  • git push -f origin branchName,因爲會有衝突,所以需要強制覆蓋遠端分支,請務必謹慎。
  • 合併到 master 中,然後更新遠端 master。
3. pull request,方便CodeReview
4. git merge與 git rebase區別

image

  • git merge(一股腦)使用merge命令合併分支,解決完衝突,執行git add .和git commit -m’fix conflict’。這個時候會產生一個commit。
  • git rebase(交互式)使用rebase命令合併分支,解決完衝突,執行git add .和git rebase --continue,不會產生額外的commit。這樣的好處是,‘乾淨’,分支上不會有無意義的解決分支的commit;壞處,如果合併的分支中存在多個commit,需要重複處理多次衝突。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章