【Git入門234】Git本地倉庫經常使用操做流程2_分支相關操做_大總結

建立分支git branch

git branch x

僅建立一個叫x的分支拷貝,不對代碼進行任何變更git

  • 能夠創造平行時間線x
  • 術語叫「分支」
  • 虛拷貝,引用
  • 能夠同時基於master/branch x開發

切換分支git checkout

  • .git同時維護master和branch x
git checkout x
git checkout master
  • 兩個時間線交替進行
  • 時不時查看下git status
  • ls -a/pwd下查看目錄
  • 分別修改了各自分支後...
    看歷史,非git命令
history

小結

git branch

  • 基於當前最新commit建立一個新的時間線(分支的快照),不是基於當前代碼
  • 在哪一個分支提交,代碼就出如今哪一個分支
  • 默認在master主分支
  • Cmder/git-bash會提示目前所在的分支,若是你初始化過,iterm2默認不會,要設置

git checkout

  • 用於切換另外一個分支
  • 當前目錄有未add/未提交的代碼,只要跟另外一分支不衝突,就不須要理會,不影響硬盤上原有的文件(git reset是影響的)
  • 若是衝突(修改了文件內容),會報一個error,使git checkout切換失敗
  • 此時要麼git commit下,要麼使用git stash合併衝突

直接查看當前所在branch

不加參:segmentfault

git branch

輸出:bash

* master
  x
*就表示當前所在branch,智能的Cmder就不用了

合併分支git merge

1. 切到你想保留的那個分支,通常是主分支master

git checkout master

2. 將另外一個分支合併到當前分支

git merge xxx

3. 提示有衝突,查看status

git status

4. 在VSCode裏逐行修改

  1. 找到========
  2. 逐行修改,刪掉=======
  3. 刪掉標記<<<<<<<
  4. 刪掉標記>>>>>>>
  5. 保存,修改完畢

5. git add標記下(暫存)

git add

6. 直接提交

git commit
不用加參數,自動添加標記 Merge branch 'xxxx'

git merge 可能有衝突,也可能沒

  • 發現衝突
  • 合併分支時 ,會獲得CONFLICT提示
  • 使用git status -sb查看哪一個/哪些文件衝突了
  • UU表示兩邊都改了
  • s表示summary b表示brunch
  • 解決衝突
  • 依次打開每一個文件
  • 搜索====四個等於號
  • 在上下兩個部分中選擇要保留的代碼,只選上面/只選下面/都保留
  • 刪除不用的代碼
  • 刪除==== <<<< >>>>這些標記
  • git add 暫存對應的文件
  • 再次git status -sb,解決下一個文件的衝突
  • 直到沒有衝突,運行git commit(注意不須要選項)

小結2

  • 分支能夠合併

  • 進入要保留的分支
  • 運行git merge xxx
  • 合併後,刪除無用的分支git branch -d xxx
  • 合併時衝突處理

  • 修改代碼,解決衝突
  • 而後git commit,使用默認的commit message

Git本地倉庫_大總結post

命令

  • git config(6行配置)
  • git add 路徑(標記:加進/移除購物車 暫存)
  • git status -sb(簡化狀態信息)
  • git commit -v(提交:結算+記筆帳)
  • git branch xxx(建立分支)
  • git checkout xxx(進入分支)
  • git merge xxx(合併分支,還要add下,加進購物車)
  • git commit(提交合並,自動記帳)
  • git branch -d xxx(砍掉分支)
  • git log(查看)
  • git reflog(本地上帝視角查看)
  • git reset --hard ******(版本穿越)

.git目錄:本地倉庫

  • 不會重複複製相同的文件(優化)
  • 能夠支持多個分支

一些細節

  • git add
  • 使用git add來臨時記錄變更外,也能記錄git rm xxx(處理的是文件的變化,而不是文件自己)
好比刪除一個文件後,依然要用 git add來添加到待提交區
rm xxx
git add xxx
git status
git commit -v
當使用 git commit提交後,.git會移除xxx:
此時 git add xxxgit commit -m"delete xxx" 等同於 git rm xxxgit commit -m"delete xxx"
  • 大部分時候,只需git addgit commit -v
  • 不須要GUI,固然你會用,還知道原理
VSCode插件git-easy使用:在當前文件裏Ctrl + Shift + p;搜 git addAdd All Modified;...

·未完待續·優化


參考文章

相關文章


相關文章
相關標籤/搜索