Tuesday, January 24, 2017

git pull

現在我開兩個git bash還有my 跟A資料夾在本地數據庫代表我跟A同事,我在兩個資料夾分別下載空的數據庫(同一個)。
假設我開發好了網頁,上傳到github我可以用通訊軟體告訴同事A我開發好了哪些部分,你可以繼續新增其他功能它就可以git pull來更新工作目錄。

記得上傳指令git push   [預設遠端主機名稱][分支名稱]

還有其他情況,例如我沒通知A同事我有開發好網頁上傳到github,他就繼續開發上傳後發生衝突,這時候就git pull下來沒有衝突的話會自動合併

git如何推送分支到遠端數據庫

git remote 查詢遠端數據庫
git remote rename 原名稱 修改名稱
git push origin master
             [預設遠端主機名稱][分支名稱]

git stash

假設你在開發網頁有一個分支issue但不那麼重要,所以你跑去master繼續開發打到一半你的老闆跟你說issue比較重要先去改,但你改到一半不想建立commit可以使用git stash來暫存

  1. git stash  暫時儲存當前目錄
  2. git stash list 瀏覽 git stash 列表
  3. git stash pop還原暫存
  4. git stash drop  清除最新暫存
  5. git stash clear  清除全部暫存


git tag標籤

簡單來說就是幫你的commit加入標籤,在建立commit 點後可以輸入git tag 標籤名稱 or git tag -am "備註內容" 標籤名稱

  1. 查詢標籤 : git tag
  2. 查詢詳細標籤: git tag -n
  3. 刪除標籤 : git tag -d 標籤名稱
  4. 新增輕量標籤: git tag 標籤名稱
  5. 新增標示標籤: git tag -am "備註內容" 標籤名稱
  6. 切換到標籤的commit : git checkout 標籤名稱

Monday, January 23, 2017

git merge解決衝突

假設在feature1修改index.html加入css跟h1,在修改期間其他在master也新增h1這樣發生衝突如下圖
這時候就看你要砍掉還是都保留,手動建立一個commit因為沒辦法自動合併

git merge(2)

有時候不只一位開發者,有很多位,這時候假設你在feature1上開發css,其他使用者已經更新master如下圖
這時候就切回master進行合併如下圖。

git merge(1)

建立兩個commit點假設第一個點空的,第二個寫了code,想加入一個功能所以建立分支feature1
切換到feature1分支開始新增功能,新增好後大家也都看過確認沒問題建立commit點,然後切回master回去看index.html程式碼回還原,因為還沒跟feature1進行合併。
確定回到master後輸入git merge feature1就變成下圖。