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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

git 创建branch分支

發布時間:2024/8/26 综合教程 29 生活家
生活随笔 收集整理的這篇文章主要介紹了 git 创建branch分支 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
開發者user1 負責用getopt 進行命令解析的功能,因為這個功能用到getopt 函數,于是將這個分支命名為user1/getopt.
(1)確保是在開發者user1的工作區中
cd /home/jackluo/workspace/user1/workspace/hello-world
(2)開發者user1 基于當前HEAD創建分支user1/getopt.
git branch user1/getopt
(3)使用 git branch創建分支,并不會自動切換.查看當前分支可以看到仍然工作在master分支(用星號"*"標識)中.
[root@localhost hello-world]# git branch
* master
user1/getopt
(4)執行git checkout 命令切換到新分支上
[root@localhost hello-world]# git checkout user1/getopt
已經位于 'user1/getopt'
(5)再次查看分支列表,當前工作分支的標記符(星號)已經落在user1/getopt分支上.
[root@localhost hello-world]# git branch
master
* user1/getopt
分支實際上是創建在目錄.git/refs/heads 下的引用 ,版本庫初始時創建的master分支就是在該目錄下.

查看一下.git/refs/heads 目錄下的引用 .可以在該目錄 下看到master文件,和一個user1目錄.而在user1目錄下是文件getopt。

[root@localhost hello-world]# ls -F .git/refs/heads/
master user1/

[root@localhost hello-world]# ls -F .git/refs/heads/user1/
getopt

引用文件 .git/refs/heads/user1/getopt記錄的是一個提交ID.

[root@localhost hello-world]# cat .git/refs/heads/user1/getopt
d901dd8170f67fec607828905d5fbd91e3272400

因為分支user1/getopt是基于頭指針HEAD創建的,因此當前該分支和master分支的指向是一致的.

[root@localhost hello-world]# cat .git/refs/heads/master
d901dd8170f67fec607828905d5fbd91e3272400

===============================

創建分支user2/i18n

創建分支:執行git branch <branchname>命令創建新分支

切換分支:執行git checkout <branchname>命令切換到新分支

git checkout -b <new_branch> [<start_point>]

檢出命令git checkout通過參數-b <new_branch> 實現了創建分支和切換分支兩個動作的合二為一,下面是

開發者user2就使用git checkout 命令來創建分支,

(1)進入到開發者user2的工作目錄 ,并和上游同步一次

[root@localhost workspace]# cd user2/workspace/hello-world/
[root@localhost hello-world]# git pull

(2).執行git checkout -b 命令,創建并切換到新分支user2/i18n上.

[root@localhost hello-world]# git checkout -b user2/i18n
切換到一個新分支 'user2/i18n'

(3)查看本地分支列表,會看到已經創建 并切換到user2/i18n分支上了.

[root@localhost hello-world]# git branch
  master
* user2/i18n

開發者user1完成功能開發

開發者user1開始在user1/getopt 分支中工作,重構hello-world 中的命令行參 數解析的代碼,重構時采用getopt_long 函數.

也可以試著更改,不過在hello-world中已保存了一份改好的代碼,可以直接檢出.

(1)確保是在user1的工作區中

 cd ../../../user1/workspace/hello-world/

(2)執行下面的命令,用里程B jx/v2.0標記的內容(已實現用getopt 進行命令行解析的功能)替換暫存區和工作區.

下面的git checkout 命令的最后是一個點"."因此檢出只更改了暫存區和工作區,

而沒有修改頭指針.

git checkout jx/v2.0 -- .

(3)查看狀態,會看到分支仍保持為user1/getopt,但文件src/main.c 被修改了.

[root@localhost hello-world]# git status
# 位于分支 user1/getopt
# 要提交的變更:
#   (使用 "git reset HEAD <file>..." 撤出暫存區)
#
#    修改:      src/Makefile
#    修改:      src/main.c
#

(4)比較暫存區和HEAD的文件差異,可以看到為實現用getopt進行命令行解析功能而對代碼 的改動

[root@localhost hello-world]# git diff --cached

(5)開發者user1提交代碼,完成任務 .

[root@localhost hello-world]# git commit -m "Refactor: use getopt_long for arguments parsing."

(6).提交完成之后,可以看到這時 user1/getopt分支和master分支的指向不同了。

[root@localhost hello-world]# git rev-parse user1/getopt master
733dcf67eba976a61d0dc6396c9d23cb23568591
d901dd8170f67fec607828905d5fbd91e3272400
(7)編譯運行hello-world.
注意輸出中的版本號顯示.
[root@localhost src]# make clean
rm -f hello main.o version.h
[root@localhost src]# make
version.h.in => version.h
cc    -c -o main.o main.c
cc -o hello main.o
[root@localhost src]# ./hello 
Hello world.
(version: v1.0-1-g733dcf6)

將user1/getopt分支合并到主線

(1),為將分支合并到主線,首先user1將工作區切換到主線,master分支.

[root@localhost src]# git checkout master
切換到分支 'master'

(2)然后執行git merge命令以合并user1/getopt 分支.

[root@localhost src]# git merge user1/getopt
更新 d901dd8..733dcf6

(3)本次合并非常順利,實際上合并后master分支和user1/getopt指向同一個提交 ,這是因為合并前的master的提交就是user/getopt分支的父提交,所以此次合并相當于將分支master重置到user1/getopt分支

[root@localhost src]# git rev-parse user1/getopt master
733dcf67eba976a61d0dc6396c9d23cb23568591
733dcf67eba976a61d0dc6396c9d23cb23568591

(4)查看狀態信息可以看到本地和遠程分支的跟蹤關系 .

[root@localhost src]# git status
# 位于分支 master
# 您的分支領先 'origin/master' 共 1 個提交。
#   (使用 "git push" 來發布您的本地提交)
#
無文件要提交,干凈的工作區

(5)上面的狀態輸出中顯示本地master分支比遠程共享版本庫的master分支領先.可以運行git cherry命令查看喜好些提交領先(未被推送到上游跟蹤分支中).

[root@localhost src]# git cherry
+ 733dcf67eba976a61d0dc6396c9d23cb23568591

(6)執行推送操作,完成本地分支向遠程分支的同步

[root@localhost src]# git push
warning: push.default 未設置,它的默認值將會在 Git 2.0 由 'matching'
修改為 'simple'。若要不再顯示本信息并在其默認值改變后維持當前使用習慣,
進行如下設置:

  git config --global push.default matching

若要不再顯示本信息并從現在開始采用新的使用習慣,設置:

  git config --global push.default simple

參見 'git help config' 并查找 'push.default' 以獲取更多信息。
('simple' 模式由 Git 1.7.11 版本引入。如果您有時要使用老版本的 Git,
為保持兼容,請用 'current' 代替 'simple' 模式)

Counting objects: 21, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (5/5), 588 bytes | 0 bytes/s, done.
Total 5 (delta 3), reused 1 (delta 1)
To /home/jackluo/workspace/repos/hello-world.git
   d901dd8..733dcf6  master -> master

(7)刪除 user1/getopt分支.

隱然特性分支user1/getopt 已經合并到主線上了,那么分支完成了歷史命,可以放心地將其刪除.

[root@localhost src]# git branch -d user1/getopt
已刪除分支 user1/getopt(曾為 733dcf6)。

總結

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

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

主站蜘蛛池模板: 久久九九爱 | 福利在线一区 | 性xxxx欧美 | 在线免费 | 午夜亚洲国产 | 亚洲乱码国产乱码精品精软件 | 爱福利视频一区二区 | 咪咪色影院| 国产成人精品一区二区三区 | 9i精品福利一区二区三区 | 2019年中文字幕 | xx69欧美| 国产精品99久久 | 在线观看福利片 | 99热导航| 色倩网站 | 欧美日韩国产高清 | 天天操夜操 | 亚洲欧美色图在线 | 日韩福利片 | www.黄色小说.com | 色婷婷av一区二区三区之e本道 | 国产一级高清视频 | 91热爆视频 | 日本成人在线免费观看 | 中国黄色免费网站 | 麻豆最新| 成人午夜视频在线免费观看 | 毛片大全免费看 | 精品人妻一区二区三区久久嗨 | 亚洲欧洲日本一区二区三区 | 亚洲午夜精品一区二区三区 | 婷婷激情社区 | 欧美三级网站在线观看 | 97小视频| 国产国产乱老熟女视频网站97 | 日韩欧美三级视频 | 顶级黄色片 | 宅男噜噜噜 | 菲律宾av | 日韩欧美国产一区二区三区在线观看 | 人人舔| 色姑娘久| 久久精品视频在线 | 亚洲深夜视频 | 久久精品国产亚洲av麻豆蜜芽 | 九九亚洲| 欧美特级黄色录像 | 波多野结衣视频播放 | 黄瓜视频色 | 成人av资源站| 成年人一级黄色片 | 欧美乱子伦 | 51国产在线 | a v免费视频| 国产裸体无遮挡 | 摸丰满大乳奶水www免费 | 亚洲激情免费 | 91精品国产自产91精品 | 91资源在线播放 | 狠狠操人人干 | 黄色性网站 | av大片网| 国产成人精 | 国内精品久久99人妻无码 | 国产成人在线免费视频 | 国产亚洲精品美女久久久久 | av福利片| 中文字幕第四页 | 丰满人妻av一区二区三区 | 999精品免费视频 | 性生活网址 | 女人性做爰24姿势视频 | 8x8x最新网址| 老司机精品福利视频 | 日本在线高清 | 亚洲天堂网一区二区 | 日韩av一区二区三区在线 | 波多野结衣视频在线播放 | 婷婷射| 久久夜精| 四虎黄色片 | 国产性生活视频 | 女同性恋一区二区三区 | 久久9久久| 欧美一区二区三区视频在线观看 | 美国免费高清电影在线观看 | 波多野结衣视频播放 | 91亚洲专区 | 在线看日本 | aaa黄色片| 亚洲天堂2014 | 日韩不卡一二三区 | 欧美日韩一区二区视频在线观看 | 99久久亚洲精品日本无码 | 亚洲中文字幕久久无码 | 91黄色免费 | 黄色一级大片在线免费看国产 | 国产精品suv一区二区88 |