当前位置:首页 > git+jenkins > 正文内容

Git分支和标签的使用

5年前 (2019-09-02)git+jenkins611

git分支


分支即是平行空间,假设你在为某个手机系统研发拍照功能,代码已经完成了80%,但如果将这不完整的代码直接提交到git仓库中,又有可能影响到其他人的工作,此时我们便可以在该软件的项目之上创建一个名叫”拍照功  能”的分支,这种分支只会属于你自己,而其他人看不到,等代码编写完成后再与原来的项目主分支合并下即可,这样即能保证代码不丢失,又不影响其他人的工作。


一般在实际的项目开发中,我们要尽量保证master分支是非常稳定的,仅用于发布新版本,平时不要随便直接修改里面的数据文件,而工作的时候则可以新建不同的工作分支,等到工作完成后在合并到master分支上面,所以团队的合作分支看起来会像上面图那样。

image.png

[root@git git_data]# git log --oneline --decorate
dbead4c (HEAD, master) add bbb          # 默认分支指向你最后一次的提交 HEAD头、指针
4c57a60 modified a
5692532 rename a.txt a
7adfca0 commit a.txt
b4017a8 commit a
`HEAD 指针指向哪个分支、说明你当前在哪个分支下工作`
[root@git git_data]# git branch testing     # 新建testing分支
[root@git git_data]# git branch
* master                                    # *号在哪里就说明当前在哪个分支上入下图所示
  testing

5bb36e000941424d03000005.png

[root@git git_data]# git log --oneline --decorate  # 通过命令查看分支指向
dbead4c (HEAD, testing, master) add bbb
4c57a60 modified a
5692532 rename a.txt a
7adfca0 commit a.txt
b4017a8 commit a
[root@git git_data]# git checkout testing   # 切换到testing分支、对应的HEAD指针也指向了testing
切换到分支 'testing'
[root@git git_data]# git branch
  master
* testing

5bb36f3e0941424d03000006.png

[root@git git_data]# touch test
[root@git git_data]# git add .
[root@git git_data]# git commit -m "commit test"

5bb44b3b40613316b8000001.png

[root@git git_data]# git checkout master    # 切换到master分支后指针指向到了master
切换到分支 'master'
[root@git git_data]# git branch
* master
  testing
[root@git git_data]# ll         # 正常情况下是没有test文件的、保证master分支是线上环境的
总用量 4
-rw-r--r-- 1 root root 8 8月  23 08:42 a

5bb44b3b40613316b8000001.png

[root@git git_data]# touch master
[root@git git_data]# git add .
[root@git git_data]# git commit -m "commit master"

5bb44c2b40613316b8000002.png

合并分支
[root@git git_data]# git merge testing          # 提示输入描述信息 相当于git的-m参数
[root@git git_data]# git log --oneline --decorate
3258705 (HEAD, master) Merge branch 'testing'
f5ae1d8 commit master
ad4f25a (testing) commit test
dbead4c add bbb
4c57a60 modified a
5692532 rename a.txt a
7adfca0 commit a.txt
b4017a8 commit a

5bb44df140613316b8000003.png

冲突合并
[root@git git_data]# echo "master" >> a
[root@git git_data]# git commit -am "modified a master"
[root@git git_data]# git checkout testing
切换到分支 'testing'
[root@git git_data]# git branch
  master
* testing
[root@git git_data]# cat a
aaa
bbb
[root@git git_data]# echo "testing" >>a
[root@git git_data]# git commit -am "modified a on testing branch"
[root@git git_data]# git checkout master
[root@git git_data]# git merge testing
自动合并 a
冲突(内容):合并冲突于 a
自动合并失败,修正冲突然后提交修正的结果。
[root@git git_data]# cat a              # 冲突的文件自动标识到文件里,手动更改冲突要保留的代码
[root@git git_data]# git commit -am "merge testing to master"       # 进行提交即可
[root@git git_data]# git log --oneline --decorate
bba413d (HEAD, master) merge testing to master
34d7a55 (testing) modified a on testing branch
ec1a424 modified a master
3258705 Merge branch 'testing'
f5ae1d8 commit master
ad4f25a commit test
删除分支-d参数
[root@git git_data]# git branch -d testing
已删除分支 testing(曾为 34d7a55)。
[root@git git_data]# git branch
* master


git标签使用


标签也是指向了一次commit提交,是一个里程碑式的标签,回滚打标签直接加标签号,不需要加唯一字符串不好记

[root@git git_data]# git tag -a v1.0 -m "aaa bbb master tesing version v1.0"  # -a指定标签名字 -m 指定说明文字
[root@git git_data]# git tag
v1.0
[root@git git_data]# git tag -a v2.0 dbead4c -m "add bbb version v2.0"       # 指定某一次的提交为标签
[root@git git_data]# git show v1.0                   # 查看v1.0的信息  git show 加标签查看
[root@git git_data]# git reset --hard v2.0            # 直接还原数据到v2.0
HEAD 现在位于 dbead4c add bbb
[root@git git_data]# ll
总用量 4
-rw-r--r-- 1 root root 8 8月  23 11:26 a
-rw-r--r-- 1 root root 0 8月  23 11:25 b
[root@git git_data]# git tag -d v2.0  # 删除标签 -d参数


“Git分支和标签的使用” 的相关文章

Gitlab使用

Gitlab使用

设置组名称、描述等创建群组 创建仓库 管理区域-创建仓库 1、登陆dev用户测试是否能看到空的git-test仓库2、添加ssh-keys到gitlab 注:一个服务器的key只能添加到一个gitlab服务器上,一个用户可以添加多个keyssh-keygen -t rs...