星光

Git使用小记(2)

挖个坑,这周之内应该能填好,主要是关于分支与协作,主要技能已经掌握了,再完善+找一个网络方便点的时候(电脑坏了233)

id=49238807


话不多说,开更

具体的实现原理和细节还请看书或者教程,星光君看的是《Pro Git》,虽然虽然篇幅什么的比博文和一些教程要长,但是窃以为讲解得较为细致和透彻

其实主要操作要用的也就是一下几个指令(组,原谅我这种自以为很详细的说法)

git branch

git checkout

git status

git merge

git remote add

git fetch


一看其实也不少呢,但是把原理理解了,就不难记忆和使用了,不过这里不讲解原理,并且也只用过一次,仅作笔记用,以后可能还要纠正里面的错误,见谅

需要指出的是如果是 git clone的话,默认情况下  自动创建了本地的 master 分支用于跟踪远程仓库中的 master 分支(摘自书里面,看不到远程看到后面)

如果是 git init 的话,会在第一次提交本地commit后自动生成master主分支

需要注意的是 git branch 列出的前面带 * 字符颜色不一样的,就是你当前所在的分支(命令行下)

每次进行切换分支操作前后请完成对应分支中的commit,确保处于干净的工作区,因为指针是指向commit对象的,所以保持良好的commit习惯,至关重要,git status 可以用来查看当前的缓存区和未跟踪文件


现在你fork了别人的项目,如何得到别人项目的最新更新呢?

运行 git remote -v 指令,可以列出当前的远程仓库,那本书里面给出的是对应的两个仓库,但是我用github实测是一个对应的远程仓库有两个选项

现在可以用字串 pb 指代对应的仓库地址了。比如说,要抓取所有 Paul 有的,但本地仓 库没有的信息,可以运行 git fetch pb:

但是这样仅仅相对于抓取了一个标签

值得注意的是,在 fetch 操作抓来新的远程分支之后,你仍然无法在本地编辑该远程仓 库。换句话说,在本例中,你不会有一个新的 serverfix 分支,有的只是一个你无法移动 的 origin/serverfix 指针。

如果要将远程的分支融入到自己的代码中,还需要使用 git merge 命令

git merge将两个分支智能合一,真的非常智能

假定我本地是自己更新了的 master分支,对应的名字是 origin/master , 我抓取了  pb/master  这个pb远程仓库的主分支

直接在自己的本地master分支中,运行

ok,这下你的代码就和你fork的远程代码合二为一了,当然还有诸如代码冲突这样的问题需要自己去解决

如果想往远程仓库推送代码,在添加好后也就非常方便了

好了,现在我们完成了自己的代码更新,想要为原作者贡献代码,怎么处理呢?

直接在GitHub上轻敲pull request 即可~不需要在命令行进行任何操作,但是请看准对应的分支

然后还有一个问题了,原作者或者自己合并后,远程的进度快于自己的本地版本怎么办?

很简单~推送代码是 git push,更新到本地就是 git pull~

以上,大概就是这些~有问题可以问我,共同交流,也请Git老司机多多指正

 

如无特殊声明,欢迎转载,但是请注明来自星之所在《Git使用小记(2)》

评论

  1. frantic1048 #1

    深坑即视感 (゚∀。)

    回复
    2015-03-11
    • starlight

      填好啦~

      回复
      2015-03-14
      • frantic1048

        代码框戳了就变黑白了,需要手动戳右上角按钮才能恢复 orz

        回复
        2015-03-17
        • Starlight

          是啊,这个插件就是这样子

          回复
          2015-03-17
        • Starlight

          你可以理解方便复制233

          回复
          2015-03-17
  2. 那就叫月月好了 #2

    好久没来~

    回复
    2015-03-16
    • Starlight

      好久不见233

      回复
      2015-03-16
  3. 瞬间少年 #3

    填坑完结撒花

    回复
    2015-03-21
    • Starlight

      还没完全完结呢,可能还有3、4

      回复
      2015-03-21