重温git

今日代码合并出现了一些问题,重温git又有一些收获,记录一下

1、local file

add

add 将工作区的修改添加到暂存区,这时新建的文件的状态就是trace。add:工作区-》暂存区

commit

  1. commit是将暂存区的东西提交到当前分支,commit:暂存区-》当前分支
    所以一个很常见的情况就是工作区 > 暂存区 > 当前分支的内容,也因此我们在一个分支上创建另一个分支必须先commit一下。
    commit相当于本地仓库的一个快照,这个后面的注释很重要,应该是符合规范的书写方式。
  2. 关于工作区和暂存区的理解经常看见clean,这个clean的意思是commit之后,我们有没有修改工作区,此时工作区状态是干净的。
  3. 理解这个区之后,我们可以通过git log和git reset命令在各个本地各个版本之间任意穿梭。

2、repository

远程仓库默认名称是origin(为远程主机取个别名,使用起来更加方便) 默认分支是master

每个远程主机都必须指定一个主机名,git remote 命令用来管理主机名。git remote -v
其他命令还有git remote show/add/rm/rename 这些都是远程主机管理

项目开始,一般要么在本地先建项目,然后上传到服务器。或者在服务器建立一个空项目(一般会带readme),然后pull到本地,创建项目各文件,最后push。

1.上传本地仓库到远程

  • 首先在远程创建一个仓库
  • 然后在本地用remote add关联远程仓库,令git push -u origin master第一次推送master分支的所有内容
  • 以后就可以不用-u参数了直接push了。
    但是之前在弄hexo时,在远程建立仓库,然后手贱点了个生成readme,然后就无法git push -u origin master。 但是可以直接pull到本地,然后push本地代码。

2. clone远程仓库到本地

clone可以使用各种协议,但是使用https协议各种慢,还需要使用口令。一般最好使用ssh协议。

3、branch

分支以前使本人对于git的盲点,以为之前也没有怎么太多的使用。
对于分支的使用场景和意义,廖雪峰是这样描述的。
分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,
如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,
又存在丢失每天进度的巨大风险。现在有了分支,就不用怕了。你创建了一个属于你自己的分支,别人看不到,
还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,
再一次性合并到原来的分支上,这样,既安全,又不影响别人工作。

一般使用就是大家在dev分支工作,然后平时在此分支pull push ,一个小功能完成之后,就可以请求合并到主分支。

查看分支

git branch -xx
xx: -r 查看远程分支,-a查看所有分支

提交分支 git push

git push <远程主机名> <本地分支名>:<远程分支名>

  1. git push origin master
    如果省略远程分支名,一般表示本地分支推送与之存在追踪关系的远程分支,如果远程该分支不存在,则创建。
  2. git push origin :master
    表示提交一个空的分支到远程某个分支,以为这该分支会被删除,等同于命令
    git push origin –delete master

四、github的pull request和fork

知乎的讨论

忽略某个文件夹

一般都是由于合作的多方IDE配置文件不同导致的,比如idea的iml文件,这些是我们不关心的,我们完全可以忽略掉。

待填