今日代码合并出现了一些问题,重温git又有一些收获,记录一下
1、local file
add
add 将工作区的修改添加到暂存区,这时新建的文件的状态就是trace。add:工作区-》暂存区
commit
- commit是将暂存区的东西提交到当前分支,commit:暂存区-》当前分支
所以一个很常见的情况就是工作区 > 暂存区 > 当前分支的内容,也因此我们在一个分支上创建另一个分支必须先commit一下。
commit相当于本地仓库的一个快照,这个后面的注释很重要,应该是符合规范的书写方式。 - 关于工作区和暂存区的理解经常看见clean,这个clean的意思是commit之后,我们有没有修改工作区,此时工作区状态是干净的。
- 理解这个区之后,我们可以通过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 <远程主机名> <本地分支名>:<远程分支名>
- git push origin master
如果省略远程分支名,一般表示本地分支推送与之存在追踪关系的远程分支,如果远程该分支不存在,则创建。 - git push origin :master
表示提交一个空的分支到远程某个分支,以为这该分支会被删除,等同于命令
git push origin –delete master
四、github的pull request和fork
忽略某个文件夹
一般都是由于合作的多方IDE配置文件不同导致的,比如idea的iml文件,这些是我们不关心的,我们完全可以忽略掉。
待填