git 操做(經常使用命令)
注意:遠程倉庫的默認名稱是origin
-
git remote add <name> <url>(本地關聯遠程倉庫)
-
git remote(查看遠程倉庫的信息 git remote -v 顯示更詳細的信息)
-
git clone <url>(克隆遠程倉庫)
-
git push -u origin master
-
git pull
-
git branch(查看當前分支)
-
git checkout -b <分支名>(在當前分支建立新的分支而且切換到對應分支,沒有 -b 表示有分支,直接切換到對應分支)
-
git merge <分支名>(合併指定分支到當前分支下。通常先切換到目標分支,而後在目標分支下去合併須要被合併的分支)
-
git branch -D <分支名>(在某個分支上刪除指定的分支)
-
git init(變成git能夠管理的倉庫)
-
git status(查看當前分支的內容是否被修改)
-
git diff 文件名 (查看對應文件被修改的部分,爲確保萬一,該命令在add以前執行)
-
git add 文件名(修改文件後添加到暫存區,後面是「.」時,所有)
-
git commit (把暫存區的全部內容提交到當前分支)
-
git log 查看日誌
-
git reset --hard <具體的版本命令>(版本命令能夠簡寫,不須要寫全,通常寫前幾個能區分開來就好)
-
git reset --hard HEAD^(回退到上一個版本)
-
git reset --hard HEAD^^(回退到上上一個版本)
-
git reset --hard HEAD~n(回退到第n個版本)
遵照:
-
在哪一個分支,就拉取哪一個分支的代碼 git pull origin <具體的分支名>
-
在哪一個分支,就推送哪一個分支到遠程 git push origin <具體的分支名>
-
若是在哪一個分支上執行推送命令失敗,哪麼咱們就先執行拉取命令而後再執行推送命令。
-
在A分支上須要合併B分支上的代碼,就須要先切換到A分支上,而後在A分支上再合併B分支上的代碼
-
執行git commit 命令時,開發內容描述要用簡單、直接的英文描述。
解決衝突
注意:在公司項目的開發過程當中,通常會對應三種不一樣的環境。開發環境、測試環境和生產環境。
-
咱們在開發環境寫代碼,開發環境和遠程的分支都對應同一個測試分支(staging),名字隨意。
-
遠程的staging分支對應測試環境。咱們每開發一個功能,都要合併到本地的staging分支,而後將其推送到遠程。
-
遠程的staging分支對咱們解決衝突起着重要的做用
-
可能有的公司並無staging這樣一個測試分支對應的測試環境,直接是master分支對應的一個測試環境。
-
每作一個功能,將功能對應的分支合併到own_test,而後推送到遠程。
最多見產生衝突的緣由
開始解決衝突
注意:對於一個普通的開發者來講,咱們不該該直接將咱們的功能分支合併到master分支上。這種事情仍是讓大佬審覈後去作。
遠程pr合併時衝突的解決方法
-
本地開發環境切換到master分支,而後使用 git pull 拉取遠程最新master分支上的代碼(被多我的修改)。
-
而後本地切換到與遠程對應提pr產生衝突的分支D(準備解決衝突)。
-
切換到本地D分支後,使用 git merge master 命令合併master分支上的代碼(衝突產生)。
-
與遠程 staging或者own_test 分支上的代碼做比較,解決本地D分支產生衝突的部分(真正解決衝突)。
-
本地D分支commit後,使用 git push origin D 命令將D分支推送到遠程(遠程提pr對應的D分支衝突解決)。