git实战笔记

作者: 的一幕 | 来源:发表于2019-02-19 18:00 被阅读13次
  • 对于公司项目在远端仓库没有任何东西的时候,咋们可以通过在本地创建好仓库,然后同步到远程的仓库,此时你可以做的是:
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:xiangcman/test.git
git push -u origin master
  • 如果公司项目已经在远端仓库有代码的时候,此时你可以通过clone方式到本地:
git clone git@github.com:xiangcman/test.git
  • 如果远程的仓库中不存在该分支,你此时想要在本地创建好分支后,然后提交到远程的仓库中:
git checkout -b dev1
git add .
git commit -m "创建了一个新的分支"
git push origin dev1

此时可以查看远端的仓库有哪些:

git branch -r
image.png

查看本地的仓库:

git branch
image.png

顺便来看下两个分支获取到的分支提交记录:

git log
image.png

从这里也看得出来两个分支提交的记录是dev1分支超前master分支的。
那下面就进行合并一次看看效果:

git merge origin/dev1
image.png

看到了没,此时master分支多了一条提交记录的。

git log --graph --pretty=oneline --abbrev-commit

该命令是可以查看分支提交的树状结构图的:


image.png

其实在用merge来合并的时候和rebase合并的时候没啥区别,只不过需要注意在合并时如果另一个分支有merge的记录,那么此时不会将该条merge的记录添加到该分支提交记录下。

  • 如果远程的仓库中已经存在dev1分支,而你想要加载到本地中来,可以用到:
git  checkout -b dev1 origin/dev1

如图所示:


image.png

其实这里很好理解,后面如果不跟origin/dev1的时候相当于创建了本地的dev1分支,并且切换到该分支下,后面跟了远程的分支后,表示和远程分支同步。

  • 冲突问题解决
    一般遇到比较多的地方就是冲突问题了,这里演示下冲突问题的解决,冲突问题其实是两个人去修改同一个文件,然后直接去提交的时候,先pull代码就发生了这种情况。下面带大家看看:


    image.png

    截图这里模拟了甲这个人先提交了东西,等下已也会提交东西,但是已不知道甲改没改东西,所以已先没去pull,等到先commit后再去pull。


    image.png
    看到了图上当已去pull的时候发生conflict了,此时需要去修复冲突才能push。那么打开源文件:
    image.png

上面标红的是已这个人刚刚提交的东西,下面是甲在之前提交的东西,此时需要去处理这个冲突,解决完冲突后,需要再次提交一次记录。提交了冲突后,才能再次push了。

冲突解决完了之后,我这里用到了git commit -a跳到了vi模式下:

image.png
在vi模式下,我编辑了提交记录是合并冲突,关于不会用vi模式(先进如insert模式,快捷键是i+command,编辑完了之后,按esc退出编辑模式,再按:wq就可以保存该次提交的记录了)的可以百度网上怎么说。
最后提交成功:
image.png
  • 合并某次提交
    之前在有家公司提到过该命令,主分支会合并某一次的提交代码,而不是整个分支的合并,下面演示下给大家看看:


    image.png

    上图第一处标红的是dev1分支上提交的记录,然后cherry-pick到master分支上了,但是合并到master分支上后,版本号会发生变化了。

更多学习git前往这里

相关文章

网友评论

    本文标题:git实战笔记

    本文链接:https://www.haomeiwen.com/subject/qnclkqtx.html