日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Git(8)-分支

發布時間:2023/12/13 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Git(8)-分支 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

分支

  • 1. 分支名
  • 2. 創建分支-git branch
  • 3. 查看分支-git show-branch
  • 4. 檢出分支
    • 4.1 有未提交的修改時進行檢出
    • 4.2 合并變更到不同的分支git checkout -m
  • 5. 分離HEAD 分支
  • 6.刪除分支

分支操作命令概覽

git branch # 列出版本庫中的分支 git branch -r # 列出遠程跟蹤分支 git branch -a # 列出版本庫中的分支和遠程跟蹤分支 git branch branchname1 # 新建一個branchname1 分支 git branch branchname3 [starting CID] # 基于starting CID新建 branchname3分支 git checkout branchname1 # 切換到branchname1分支(又叫檢出xxx分支) git checkout -b newbranchname # 新建一個分支,并切換到該分支 git branch -d branchname2 [starting CID] # 刪除分支git checkout -- file1 # 檢出索引中的文件file1 git checkout commit_x -- file1 # 檢出commit_x中的提file1

分支是軟件項目中啟動一條單獨開發線的基本方法。

**分支-**動態名字,隨著每次的提交移動,跟隨你持續開發的過程。
**標簽-**靜態名字,不隨著時間的推移而改變,一旦應用不應該對它做任何改動,可用于標識擁有關鍵差異特征的提交點位。

可以使用同一個名字來命名分支和標簽,但是不推薦。

1. 分支名

默認分支是master(正在改為main),分支名字始終指向改分支上的最近提交版本。
使用層次分支- bug/pr-1023, bug/pr-17 這種層次分支支持通配符選擇。

路徑層次分支命名具有一些通用的規則,分支命名規則由 git check-ref-format 底層命令強制檢測。

2. 創建分支-git branch

在任何時候,版本庫中只有一個分支是活動的?;顒臃种Q定了工作目錄里的檢出文件。
當需要把本地分支發布,需要顯示指明發布分支的名稱。

git branch prs/pr-1138 [starting commit] # 基于starting commit 新建 prs/pr-1138分支 # starting commit 缺省, 默認為當前分支上的最近提交 # git branch 創建分支后,需要顯示才會切換為

git branch 不帶分支名稱時,可用于列出版本庫中的分支名,帶星號的分支名標識當前的活動分支。

git branch # 列出版本庫中的分支 git branch -r # 列出遠程跟蹤分支 git branch -a # 列出版本庫中的分支和遠程跟蹤分支

3. 查看分支-git show-branch

按時間順序\)列出對一個或多個分支有貢獻的提交。同樣可以帶-r,和-a兩種可選參數。 \

git show-branch # 該輸出被破折號分為兩個部分,..... * [alternate] Initial 3 line file # 方括號中的為分支名,后面跟著最近一次提交! [master] Another file # * 標識當前活動分支上的提交 -- # + 表示提交在一個分支中【說的什么話?】+ [master] Another file # - 表示一個合并提交 *+ [alternate] Initial 3 line filegit show-branch bug/pr-1 bug/pr-2 # 查看兩個分支的提交信息,支持通配符匹配更多的分支

4. 檢出分支

工作目錄一次只能反應一個分支。git checkout用于切換不同的分支。它改變了工作樹文件和目錄結構來匹配切換分支。git checkout branchname 實現改了通過分支名來檢出分支頭部。

4.1 有未提交的修改時進行檢出

工作目錄里未被追蹤的文件的目錄始終會被置之不理,git不會刪除或修改他們。如果一個文件在本分支上修改了,但是沒有被新分支追蹤,git 會發出錯誤信息,并拒絕檢出到目標分支。

$ git checkout dev error: Your local changes to the following files would be overwritten by checkout:git_checkout_test Please commit your changes or stash them before you switch branches. Aborting$ cat git_checkout_test git checkout test $ git diff git_checkout_test diff --git a/git_checkout_test b/git_checkout_test index e69de29..9747ad6 100644 --- a/git_checkout_test +++ b/git_checkout_test @@ -0,0 +1 @@ +git checkout test$ git show dev:git_checkout_test # 查看另一個分支中的文件 fatal: path 'git_checkout_test' exists on disk, but not in 'dev'

解決方法
1.提交新的更改到當前分支
2.提交新的更改到另一分支:
a). stash
b). 合并變更到不同的分支。

4.2 合并變更到不同的分支git checkout -m

-m 選項將 本地修改合并到目標分支的工作目錄中,并留下合并沖突指示[可能會沒有],我們需要進一步解決存在的沖突。

% git checkout dev error: Your local changes to the following files would be overwritten by checkout:git_checkout_test Please commit your changes or stash them before you switch branches. Aborting % git checkout -m dev A git_checkout_test M hello.txt Switched to branch 'dev' # dev 分支上修改文件,再想切換回master分支, 執行合并切換操作不行啊。 % git checkout -m master fatal: cannot continue with staged changes in the following files: git_checkout_test hello.txt

在master 分支中編輯文件,突然意識到需要將所有的修改提交到dev2分支上,那么就新建并切換到新的分支上。

% git checkout -b dev2 Switched to a new branch 'dev2' % git status On branch dev2 Changes not staged for commit:(use "git add <file>..." to update what will be committed)(use "git restore <file>..." to discard changes in working directory)modified: git_checkout_testno changes added to commit (use "git add" and/or "git commit -a")

5. 分離HEAD 分支

git checkout branchname 實現改了通過分支名來檢出分支頭部。git checkout 可以檢出任何提交,如果檢出的提交不是該分支的頭部,Git 會創建一個分離的HEAD(detached HEAD),以下的情況,Git都會創建一個分離的HEAD:

  • 檢出的提交不是分支的頭部
  • 檢出一個追蹤分支
  • 檢出一個標簽引用的提交
  • 使用git bisect 操作
  • 使用git submodule update命令
  • 如果1: 想要保留在detached HEAD狀態下的開發內容,那就新建一個分支。

    git checkout -b new_branch

    如果2: 只是在detached HEAD狀態下驗證某些東西,不想保存相關操作,直接切換回某個一分支即可。

    git checkout branchname

    6.刪除分支

    git branch -d branchname2

    默認規則1:不能刪除當前分支。
    默認規則2: 不會允許刪除一個 包含不存在當前分支提交的分支。就是說,要刪除的分支不是當前分支的祖先,那么刪除該分支將會造成某些開發不可留。但是可以通過 -D強制刪除,可以選擇在刪除之前進行一次合入操縱。

    git branch -D branchname2

    總結

    以上是生活随笔為你收集整理的Git(8)-分支的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。