团队开发/个人开发之git

前言:git是一个代码版本的管理程序,可以创建分支,多人协同工作,自己的分支完成了功能/修改了bug;就可以合并到主分支(或者其他次主分支)

次主分支:出现的原因:有时候一个项目由一开始的一个主分支master,因为不同的客户需求(它开始有自己独特的地方),开始并发出两个,三个或者更多个次主分支,同时进行这么多次主分支(每个客户自己的版本)是有些困难的,有时候就会忘记把一个新功能同时同步给某个客户;这里就看怎么把握这个平衡的点了;
由我目前的开发经验来说,还是不要出现3个以上次主分支的好,我们新建一个git仓库给他单独开发

真实开发中的使用(我就主要说windows系统了,服务器上搭建的一个git的Gogs框架)
  • 第一步:建立本地(准确说当前电脑)的git账号:这个账号既可以和github的账号关联,也可以和国内的码云的账号关联;这里就不讲了
    • git config --global user.name "你自己的喜欢的名字"
    • git config user.name,查看你刚刚创建的用户名
    • git config --global user.email "一个可以使用的邮箱"
    • git config user.email,查看你刚刚创建的邮箱(这样你本地的git账号的用户名和邮箱就有了)
    • git config --global push.default simple 设置 Git 推送分支时默认配置:选择当前分支
  • 第二步:创建本地的代码分支,用于工作
    • 第一种情况:你们公司的远程仓库已经新建了一个项目仓库,你是新来的员工/重装里电脑/反正就是你的电脑现在没有这个项目;那么你需要这样做:

    • git clone 远程仓库的master网址,注意在你想要工作的文件下打开gitbash,并执行此操作

    • cd 文件夹名称 进入你本地刚刚拉取的项目文件夹下,再次打开gitbash,会看到此时是 *master:表示当前是主分支

    • git checkout -b 分支名称 创建本地的一个工作分支(一般不在主分支上开发),分支命名规则:dev_名称缩写_模块,注意查看网站里其他人员的分支,不要命名重复

    • git branch,查看当前分支,带有*号的是当前分支,再上一个命令结束后,应该就已经切换到你新建的分支上了

    • git checkout 分支名称,这个是切换分支命令,可以切着玩,不过工作的时候一定要在自己的分支

    • git push -u origin 你创建的分支名字,在远程仓库上创建一个你自己的分支,名字最好和你本地相同;这样是为了你可以先把自己的代码提交到你自己的远程分支,先不合并到主分支,由项目组长检查一下

    此时讲解一下你本地有了:master主分支的代码,和一个空的自己的分支;远程也有一个master和一个你的远程分支;所以需要你将本地空分支拉取一份master主分支代码

    • git pull origin master在本地分支上拉去一遍远程仓库主分支master的代码,以后就在本地分支工作了

    • 第二种情况:一般就是自己的项目了,你突发奇想自己写了点项目,现在想把它放在github或者码云上,那你就先在github/码云上新建一个项目(空的),然后把本地和它关联上就行了,使用这个命令:git push -u origin 项目名;二者好像可以不一样,要不要一样随你

  • 第三步:关于提交代码,注意这些操作是在你本地的个人分支为前提的
    • git pull origin master,提交前先拉去一下主分支上的代码,以避免可能的冲突(另外,如果你是新写的一个模块,没有人写你这部分的代码,而且你也没有修改其他地方的代码,那么可以不拉取主分支),冲突一般要在本地处理好

    • git status,查看本地做了那些修改,红色的都是你本地修改或者添加的内容

    • git add 上面的文件路径,添加文件进暂存区(这个想了解自己查,这里就不解释了),这个命令是提交单个文件;如果需要提交全部修改,可以使用 git add .,使用这个命令,需要注意提前检查一下项目的ignore忽略文件,不要将自己的环境配置提交到线上了。

    • git status,添加完成后,在使用这个命令检查一下,这个命令经常使用,有事没事都可以检查一下

    • git reset HEAD 文件路径,这个命令可以撤销未提交(commit之前)的暂存区的里添加错误的文件

    • git commit -m "你想写的一些提交注释说明",还是强调当前是在本地个人分支上操作的,这时就把暂存区的内容提交到分支上了

    • git push origin 你远程分支的名字,然后提交 合并申请/由组长看一下

补充:git checkout /app/xxxx/ad/dfa.php,放弃本次修改

  • 第四步:就可以在网站上创建合并请求了,没问题通过,有问题关闭合并请求,本地重新修改,提交,创建合并请求····
注释:上述过程并没有使用合并分支(merge)和暂时存储(stash)命令,以后有机会再介绍
合并分支操作

通常合并分支时,git一般使用”Fast forward”模式,在这种模式下,删除分支后,会丢掉分支信息,现在我们来使用带参数 –no-ff来禁用”Fast forward”模式。

  • 前提条件:有主干master,分支dev_you,此时在dev_you分支上
  • 本地自己分支修改完内容
  • 先提交到自己的远程分支dev_you git push
  • 切换到需要合并到的分支,这里就切到master git checkout master或者 git switch master
  • 合并dev_you 到master(上一步已经切换至master分支),git merge dev_you;或者 git merge –no-ff -m “注释” dev_you
暂时存储stash

通常本地修改结束后,该提交代码了;但为了避免冲突,需要拉取一下主干代码,如果有冲突会拉取不下来,所以就需要把我们自己刚才的修改隐藏起来,先拉取,再把我们的代码恢复出来,解决冲突,然后提交。

  • 这里的前提条件:自己直接在master上修改,也直接提交到master上
  • 本地分支修改完内容
  • 先隐藏自己的修改 git stash
  • 拉取主干代码 git pull
  • 恢复自己的修改 git stash pop
  • 如果有冲突就修改冲突
  • 然后提交 git pull ,虽然这个时候还是有可能冲突的,毕竟可能就在那一秒又有同事提交了修改。
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值