大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

Git教程
Git標簽管理
Git分支
Git操作
Git應用
GitHub應用
IDEA對于Git&GitHub的支持
Git與GitHub使用注意事項

Git分支管理

什么是分支管理

在版本控制過程中,使用多條線同時推進多個任務就是分支管理。

如下圖所示:

 

分支管理的好處

⒈同時并行推進多個功能開發,提高開發效率

⒉各個分支在開發過程中,如果某一個分支開發失敗,不會對其他分支有任何影響。失敗的分支刪除重新開始即可。

分支操作允許創建另一路線/方向上開發。我們可以使用這個操作將開發過程分為兩個不同的方向。 例如,我們發布了1.0版本的產品,可能需要創建一個分支,以便將2.0功能的開發與1.0版本中錯誤修復分開。

創建分支

我們可使用git branch 命令創建一個新的分支。可以從現有的分支創建一個新的分支。 也可以使用特定的提交或標簽作為起點創建分支。 如果沒有提供任何特定的提交ID,那么將以HEAD作為起點來創建分支。參考如下代碼,創建一個分支:new_branch:

$ git branch new_branch

Administrator@MY-PC /D/worksp/sample (master)
$ git branch
* master
  new_branch

執行上命令后,它創建了一個新的分支:new_branch; 使用git branch命令列出可用的分支。Git在當前簽出分支之前顯示一個星號。

創建分支操作的圖示表示如下:

切換分支

使用git checkout命令在分支之間切換。

$ git checkout new_branch
M       src/string.py
Switched to branch 'new_branch'

創建和切換分支的快捷方式

在上面的例子中,分別使用兩個命令創建和切換分支。 Git為checkout命令提供-b選項; 此操作將創建一個新的分支,并立即切換到新分支。

$ git checkout -b test_branch
M       src/string.py
Switched to a new branch 'test_branch'

Administrator@MY-PC /D/worksp/sample (test_branch)
$ git branch
  master
  new_branch
* test_branch

刪除分支

可以通過向git branch命令提供-D選項來刪除分支。 但在刪除現有分支之前,請切換到其他分支。

如上面所示,目前在test_branch分支,如要想刪除該分支。需要先切換到其它分支再刪除此分支,如下所示。

$ git branch
  master
  new_branch
* test_branch

Administrator@MY-PC /D/worksp/sample (test_branch)

$ git checkout master
M       src/string.py
Switched to branch 'master'
Your branch is ahead of 'origin/master' by 4 commits.
  (use "git push" to publish your local commits)

Administrator@MY-PC /D/worksp/sample (master)

$ git branch -D test_branch
Deleted branch test_branch (was b759faf).
Administrator@MY-PC /D/worksp/sample (master)

當前剩下的分支如下:

$ git branch
* master
  new_branch

重命名分支

假設需要在項目中添加對寬字符的支持。并且已經創建了一個新的分支,但分支名稱需要重新命名。那么可通過使用-m選項后跟舊的分支名稱和新的分支名稱來更改/重新命名分支名稱。

$ git branch
* master
  new_branch

Administrator@MY-PC /D/worksp/sample (master)
$ git branch -m new_branch wchar_support

現在,使用git branch命令顯示新的分支名稱。

$ git branch
* master
  wchar_support

合并兩個分支

實現一個函數來返回寬字符串的字符串長度。新的代碼將顯示如下:

$ git branch
master
* wchar_support

$ pwd
/D/worksp/sample

Administrator@MY-PC /D/worksp/sample (master)
$ git diff
diff --git a/src/string.py b/src/string.py
index 18f165f..89e82b3 100644
--- a/src/string.py
+++ b/src/string.py
@@ -8,3 +8,9 @@ print ("var2[1:5]: ", var2[1:5]) #   切片 加索引

 def my_strcat(str1, str2):
        return (str1+str2)
+
+a = '我'
+b = 'ab'
+ab = '我ab'
+
+print(len(a), len(b), len(ab), len('='))
\ No newline at end of file

Administrator@MY-PC /D/worksp/sample (master)

假設經過測試,代碼沒有問題,最后將其變更推送到新分行。

$ git status
On branch master
Your branch is ahead of 'origin/master' by 5 commits.
  (use "git push" to publish your local commits)

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   src/string.py

no changes added to commit (use "git add" and/or "git commit -a")

Administrator@MY-PC /D/worksp/sample (master)
$ git add src/string.py

Administrator@MY-PC /D/worksp/sample (master)
$ git commit -m 'Added w_strlen function to return string lenght of wchar_t
> string'
[master 6bab70a] Added w_strlen function to return string lenght of wchar_t string
 1 file changed, 6 insertions(+)

請注意,下面將把這些更改推送到新的分支,所以這里使用的分支名稱為wchar_support而不是master分支。

執行過程及結果如下所示:

$ git push origin wchar_support
Username for 'http://git.oschina.net': [email protected]
Password for 'http://[email protected]@git.oschina.net':
Counting objects: 18, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (12/12), done.
Writing objects: 100% (15/15), 1.72 KiB | 0 bytes/s, done.
Total 15 (delta 3), reused 0 (delta 0)
To http://git.oschina.net/bjpowernode/sample.git
 * [new branch]      wchar_support -> wchar_support

Administrator@MY-PC /D/worksp/sample (master)

提交更改后,新分支將顯示如下:

如果其他開發人員很想知道,我們在私人分支上做什么,那么可從wchar_support分支檢查日志。

bjpowernode@ubuntu:~/git/sample$ git log origin/wchar_support -2

輸出結果如下:

bjpowernode@ubuntu:~/git/sample$ pwd
/home/bjpowernode/git/sample
bjpowernode@ubuntu:~/git/sample$ git pull
remote: Counting objects: 15, done.
remote: Compressing objects: 100% (12/12), done.
remote: Total 15 (delta 3), reused 0 (delta 0)
Unpacking objects: 100% (15/15), done.
From http://git.oschina.net/bjpowernode/sample
 * [new branch]      wchar_support -> origin/wchar_support
Already up-to-date.
bjpowernode@ubuntu:~/git/sample$ git log origin/wchar_support -2
commit b759fafeb2a58bd1104f4142e4c0ababdadce01d
Author: maxsu <[email protected]>
Date:   Mon Jul 10 23:44:24 2017 +0800

    fdasjkfdlaks

commit de08fcc70df3a31c788a2e926263b18498d2df09
Author: maxsu <[email protected]>
Date:   Mon Jul 10 23:40:00 2017 +0800

    delete
bjpowernode@ubuntu:~/git/sample$

通過查看提交消息,其他開發人員(minsu)到有一個寬字符的相關計算函數,他希望在master分支中也要有相同的功能。不用重新執行代碼編寫同樣的代碼,而是通過將分支與主分支合并來執行代碼的合并。下面來看看應該怎么做?

bjpowernode@ubuntu:~/git/sample$ git branch
* master

bjpowernode@ubuntu:~/git/sample$ pwd
/home/bjpowernode/git/sample

bjpowernode@ubuntu:~/git/sample$ git merge origin/wchar_support
Updating 44ea8e4..b759faf
Fast-forward
 src/string.py | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
bjpowernode@ubuntu:~/git/sample$

合并操作后,master分支顯示如下:

現在,分支wchar_support已經和master分支合并了。 可以通過查看提交消息或者通過查看string.py文件中的修改來驗證它。

bjpowernode@ubuntu:~/git/sample$ git branch
* master
bjpowernode@ubuntu:~/git/sample$ cd src/
bjpowernode@ubuntu:~/git/sample/src$ git log -2
commit b759fafeb2a58bd1104f4142e4c0ababdadce01d
Author: maxsu <[email protected]>
Date:   Mon Jul 10 23:44:24 2017 +0800

    fdasjkfdlaks

commit de08fcc70df3a31c788a2e926263b18498d2df09
Author: maxsu <[email protected]>
Date:   Mon Jul 10 23:40:00 2017 +0800

上述命令將產生以下結果。

#!/usr/bin/python3

var1 = 'Hello World!'
var2 = "Python Programming"

print ("var1[0]: ", var1[0])
print ("var2[1:5]: ", var2[1:5]) #   切片 加索引

def my_strcat(str1, str2):
    return (str1+str2)

a = '我'
b = 'ab'
ab = '我ab'

print(len(a), len(b), len(ab), len('='))

測試后,就可將代碼更改推送到master分支了。

$ git push origin master
Total 0 (delta 0), reused 0 (delta 0)
To http://git.oschina.net/bjpowernode/sample.git
5776472..64192f9 master ?> master

分支管理操作方式

git brach -v 查看分支

觀察到我們現在只有一個默認的分支(系統提供的主干分支),就是master

git branch 分支名 創建分支

我們現在來創建一個分支bran1

創建完畢后,再次查看分支,表示現在共有兩個分支master和bran1

注意:由于barn1這個分支是由master這個分支創建出來的,所以默認指向同一個指針ggg

master綠色高亮表示當前操作,使用的仍然是master分支

git checkout 分支名 切換分支

切換完再次查看分支,bran1分支綠色高亮顯示,表示我們現在操作的是bran1這個分支。

分支合并以及解決沖突

⒈合并分支

首先我們切換到bran1分支上,在test1.txt上新增信息iii,然后add和commit在bran1分支上,我們看到了iii;

如果切換回master分支上,我們是看不到iii的(iii是bran1做的操作,所以看不到)

此時master分支如果想要看到iii,就必須要和bran1分支進行合并

分支的合并不會刪除某一個分支,而是對于信息進行對稱整合

我們切換到master分支上執行命令 git merge bran1 就會將bran1中的信息進行整合

這時我們再觀察cat test01.txt就會有最新的iii了

⒉合并分支過程中沖突的解決方式

此時master分支和bran1分支上都是最新的iii

在master分支上新增jjj,執行add和commit

然后切換到bran1分支上,新增kkk,執行add和commit

然后合并分支,例如我們還是使用master合并bran1分支

此時就會產生沖突

沖突的解決方式:

首先編輯test01.txt文件,保留有用信息(協商解決),刪除(作為沖突標識的)特殊符號

執行git add test01.txt

執行 git commit -m"日志信息"

這樣就成功的解決了沖突。

全部教程
主站蜘蛛池模板: 综合欧美视频一区二区三区 | 亚洲视频日韩 | 奇米影视第四色777 奇米影视第四色7777 | 国产日韩欧美成人 | 国产黄mmd在线观看免费 | 亚洲欧美精品一中文字幕 | 国内精品免费 | 久操视频免费在线观看 | 四虎影视在线看免费观看 | 在线成人精品国产区免费 | 久久久久女人精品毛片九一 | 国产第一区二区三区在线观看 | 婷婷亚洲激情 | 亚洲欧美在线播放 | 国产一区二区三区免费看 | 日韩午夜在线观看 | 另类久久 | 波多野结衣国产精品 | 亚洲天码中文字幕第一页 | 97国产视频 | 国产日产欧美精品 | 99精品免费在线观看 | 国产亚洲精品一区二区 | 日韩精品一区二区三区毛片 | 精品国产系列 | 国产美女白丝袜精品_a不卡 | 亚洲日本一区二区三区高清在线 | 五月婷婷激情综合网 | 一级黑人| 国内偷自视频区视频综合 | 国产精品视频视频久久 | 亚洲精品国产第一区二区多人 | 亚洲综合伊人色一区 | 中国一级毛片欧美一级毛片 | 日韩视频欧美视频 | 97网站| 久久不卡精品 | 奇米影视狠狠久久中文 | 国产精品亚洲片在线牛牛影视 | 国产精品色图 | 一区精品在线 |