day77 git分支学习
day77 git分支学习
在前面我们已经学习了git的基本的使用的方法,这一节我们来学习git的重要的概念【分支】

# 背景
例如开发一个淘宝平台,刚写到登陆的功能,代码还没写完,今天就睡觉了,所以代码commint提交到本地的仓库了
加入另一个程序员不知道还对这个代码继续的开发,这个不就乱套了吗
#因该是这样的
1. 分别给yzk 添加一个分支 yzk. 张三一个分支 zhangsan
2. 这两个人基于自己的分支环境去写代码,进行版本的提交,互不影响。
3. 最后将这2个人的代码进行合并即可。

分支命令实践
如下的操作,用本地仓库作为练习,创建分支,合并分支到master
切换分支
在一个机器上的操作
同理,这个仓库,因该是有远程仓库提供,如码云平台中的代码的仓库。
提供master分支
如 A1 写的代码推送到远程仓库
B2 写的代码推送到远程仓库
最终他们的代码合并到master上
运维就直接下载master的代码,到linux服务机器上,为最终上线代码源
默认的仓库的版本中有一个分支,master
git brabch
直接看到当前版本的仓库,有几个分支
以及由星星的那个分支,就是你当前用的分支。
[root@master-61 mldong]# git branch
* master
创建分支
1. 命令先创建好分支,在切换过去
[root@master-61 mldong]# git branch yzk
[root@master-61 mldong]#
[root@master-61 mldong]#
[root@master-61 mldong]# git branch yzk
fatal: A branch named 'yzk' already exists.
[root@master-61 mldong]# git branch
* master
yzk
[root@master-61 mldong]# git branch yzk01
[root@master-61 mldong]# git branch
* master
yzk
yzk01
切换分支
git checkout yzk
[root@master-61 mldong]# git checkout yzk
Switched to branch 'yzk'
[root@master-61 mldong]# git branch
master
* yzk
yzk01
直接创建,并且立即切换分支
git checkout -b big
[root@master-61 mldong]# git checkout -b big
Switched to a new branch 'big'
[root@master-61 mldong]# git branch
* big
master
yzk
yzk01
用分支写代码
这就是公司中多个程序员如何协作的开发同一个服务的流程。

在实际的工作中,每个人都用自己电脑推送代码
都只会读取你自己的git config 的配置。
# 这是基于yzk分支,创建自己的代码,提交的版本,这个分支下版本的记录就属于(yzk)
# 写代码,追踪,提交记录。
切换到另一个分支

你会发现,你找不到yzk分支的提交的记录

切换master的分支
敲黑板,重点
master 和其他的分支一样,就是一个普通的分支,没什么特别的。
但它是系统默认的分支
想看到yzk01分支的代码就必须要合并版本的记录
合并分支到master上来
master 作为约定俗称的默认的分支,代码都合并到master即可。
合并yzk分支的代码到master主干线上来。

1. 首先到master主干线的分支 git checkout master
2. 在合并yzk的分支记录 git merage yzk
分支的冲突
其实就是两个分支上传了同一个文件,该怎么办。
这个我就简单来说一下
手动的打开相同的文件,进行修改即可,就那麽简单
删除无用的分支
# 开发完毕后,无用的分支都删掉
git branch -d id
[root@master-61 mldong]# git branch
big
* master
yzk
yzk01
[root@master-61 mldong]# git branch -d yzk01
Deleted branch yzk01 (was 95b33df).
[root@master-61 mldong]# git branch -d yzk
Deleted branch yzk (was 9b22c73).
[root@master-61 mldong]# git branch -d big
Deleted branch big (was 95b33df).
[root@master-61 mldong]#
查看远程仓库,码云的分支玩法
只要你对git的分支命令操作明白以后,就很小儿科了。
1.创建远程仓库 ( git init )
码云Gitee
- 创建远程仓库,就像在本地 git init 一样


访问这个仓库的由两种方式
1. https
2. ssh
很明显在client机器上,生成

# git remote add 添加一个远程仓库的别名 叫做 origin
# 具体的地址是 https://gitee.com/yzkit/yzk_git.git
git remote add origin https://gitee.com/yzkit/yzk_git.git
# 把本地仓库的数据推送到origin 远程仓库中,推送到master分支。
git push -u origin "master"
检查当前本地仓库的配置
git remote --help
[root@master-61 mldong]# git remote -v
origin https://gitee.com/mldong/mldong.git (fetch)
origin https://gitee.com/mldong/mldong.git (push)
删除该记录
[root@master-61 mldong]# git remote remove origin
关联自己仓库,目前采用的是https协议,需要账户密码验证
git remote add origin https://gitee.com/yzkit/yzk_git.git
# git push 把本地仓库的数据,推送到origin的远程的仓库,推送到master中。
[root@master-61 mldong]# git push -u origin "master"
Username for 'https://gitee.com': 18985844336
Password for 'https://18985844336@gitee.com':

基于第二种的玩法sshkey验证
```
修改git的协议
1.查看原协议
[root@master-61 mldong]# git remote -v
origin https://gitee.com/yzkit/yzk_git.git (fetch)
origin https://gitee.com/yzkit/yzk_git.git (push)
[root@master-61 mldong]#
2.修改为 git的协议
[root@master-61 mldong]# git remote remove origin
[root@master-61 mldong]# git remote -v
[root@master-61 mldong]#
[root@master-61 mldong]# git remote add origin git@gitee.com:yzkit/yzk_git.git
[root@master-61 mldong]# git remote -v
origin git@gitee.com:yzkit/yzk_git.git (fetch)
origin git@gitee.com:yzkit/yzk_git.git (push)
最后就是去码云中推送,当前机器的公钥。
到这里就修改好了
[root@master-61 mldong]# git push -u origin master
Counting objects: 4, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 286 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Powered by GITEE.COM [1.1.5]
remote: Set trace flag 1743059b
To git@gitee.com:yzkit/yzk_git.git
9b22c73..dd0ef25 master -> master
Branch master set up to track remote branch master from origin.
```


浙公网安备 33010602011771号