小马的git使用记

小马刚当上程序员,有一天老大说,咱们团队要使用git了。大家准备一下。 
结果第二天就让用git管理代码。

听领导说,我们线上分三个分支 master主分支,其实就是首次部署代码的时候用一下,线上正式环境的分支是release分支。然后我们测试用的分支是develop 分支。

领导要求我们在 develop 上做好测试,然后发布到release分支上,然后上生产。

首先必须安装git 这个window下,下一步就可以。mac自带的git,但是权限有点复杂。

我先做好基本的配置,用户名,邮箱,密码,和ssh之类的。完成之后呢我就有权利拉去代码修改并提交代码。

新建一个文件夹,作为自己的项目文件

进入文件,点击右键会出现 Git Bash Here 进入类似cmd的命令模式

我首先要把代码克隆到本地

git clone *********(代码地址)

查看了线上的分支有哪些 。

git barnch  -r   //查看线上的分支
git branch      // 查看本地的分支

我看到线上有三个分支

origin/master
origin/release
origin/develop

然后我需要把线上的 release和develop都拉去到本地 master就不用了

拉取线上的代码的方法:

方法一
使用如下命令:
git checkout -b 本地分支名x origin/远程分支名x
使用该方式会在本地新建分支x,并自动切换到该本地分支x。
方式二
使用如下命令:
git fetch origin 远程分支名x:本地分支名x
使用该方式会在本地新建分支x,但是不会自动切换到该本地分支x,需要手动checkout。

我觉得第一种方式舒服一点

我使用了两次,将远端的两个分支都取下来

git checkout -b  release  origin/release 
git checkout -b  develop  origin/develop 

这时候我本地就有了两个分支 
我使用git branch 查看的时候就看到了

release
develop

领导要求我们不能直接在release分支和develop分支上直接做修改,要自己建分支。然后merge到分支上去

我们的生产代码都在release上,所以呢我需要从release 上新建一个分支出来

注意:一定要总是从release 上获取代码,然后做开发。千万不要从测试上拉一个分支去做开发。保证你的代码根源是线上最新的。

首先我要确保release 分支上的代码是最新的,so ,我先切换分支到release上

git checkout release ( 当然你已经在这个分支就不用切换)

问题来了我怎么知道我在那个分支呢。 
用git 打开自己clone的项目的时候就可以看到自己的项目是什么分支

admin@PC MINGW64 /d/photo/PhotoWall (dev) //括号里面就说明你在dev分支

然后我拉去了线上最新的代码

git pull 

然后 我查看了代码的提交记录

git log  看到时间很近 是最新的代码

点击q 退出查看

这时候我要自己做开发,我新建了一个xiaoma分支

git checkout -b xiaoma  

这时候我的分支切换成了xiaoma分支

然后我就动手编写我的代码

。。。。努力耕耘了一天,甚是乏累。。。

然后在下班临走前,我完成了我的任务我需要测试和发布

我首先查看一下我修改了哪些文件,以及我现在处于的状态。

git status 

看到我修改了很多文件。 
然后呢我要看一下这些代码是不是我想要去提交的

git diff  

会列出你修改的哪些地方,然后呢对比一下 是不是修改了这些。确定没有dump. alert 之类的低级错误。然后呢 
我需要把我的代码添加到工作区

git add .   (注意后面的 点 号  指的是 所有的编辑文件都加进去)

这里会有一个问题是 我有一些是不需要版面控制的文件要添加进版本忽略里面(可以自己查一下)

然后呢 我把代码提交进 我自己的xiaoma分支上去

git  commit   -m "小马一天努力的结果"

提交了代码之后。我要做测试 
所以我要把代码发布到develop 上自己看看效果。所以我要把分支切换到develop 上

git checkout  develop 

拉取最新的代码

git pull  

合并一下我的xiaoma 分支

git merge xiaoma  -m "测试合并"

然后我测试之后觉得我的代码完全符合生产的条件 
我再次切换到release 分支

git checkout  release

这时候我的队友已经提交了代码 所以我需要再次拉取最新的代码

git pull 

之后我需要把代码merge到线上release 
但是我们的领导有要求了,你们提交的线太乱了,不利于维护,所以你们必须保证提交的是一条线。学习一下rebase。。。

我拉取了release最新的代码之后, 我切换到我的xiaoma 分支。对现在的relaese 进行rebase操作。

git checkout xiaoma
git rebase release //相对于release 变基 

完成之后 
切换回 release 分支上

git merge xiaoma --no-ff  

然后我的代码就到了release 分支上,并且线条很完美。 –no–ff 是不快速合并,会在提交线上出现一个新轨道,包换你的所有提交记录。然后最后合并到release 分支上。如果在自己分支上只做了一次提交。 就不用–no-ff

git push origin release 

任务完成。。。

这里要注意。

  1. 在develop 做测试的时候不进行rebase 操作。因为你的这个分支需要在后面和release进行rebase所以呢,不要对develop进行rebase操作。可以在xiaoma的基础上新建一个xiaoma2 让xiaoma2 对develop进行rebase .

  2. 代码冲突 
    修改冲突 再次提交就好 
    git add . 
    git commit -m “代码解决冲突”

  3. rabase 冲突 
    在rebase过程中冲突 
    解决冲突之后, 
    git add . 
    然后继续 
    git rebase –continue 
    还有两个选项 
    git rebase –skip (不要用,除非这是你想要的。他会忽略你的这次提交) 
    git rebase –abort 退出rebase

  4. 忽略管理文件 
    git update-index –assume-unchanged 文件名/文件。 #忽略跟踪 
    git update-index –no-assume-unchanged 文件名/文件 #恢复跟踪

  5. 一般查看记录在window上可以用gitk 会弹出一个 提交记录框。可以看到大家的所有提交,每条记录都有版本号(数字很长,但是前六位数字码,就可以标识一个记录,这个很关键是你每次提交的记录标识)可以使用 git resert –hard 123456 就可以回到这个提交点

  6. 学会使用 git log 查看提交记录之类的 有很多参数可以使用

  7. 删除无用的分支 
    git branch -D xiaoma 分支就可以删除 
    git branch -d xiaoma 
    大小写的区别在于这个分支有没有被合并过,d 没有合并过不允许删除,所以经常使用大写D ,注意是不是有用分支就行

  8. 关于软件学习 git 软件推荐使用小乌龟 TortoiseGit

猜你喜欢

转载自blog.csdn.net/uncle_long/article/details/78706788
今日推荐