不介绍git是什么玩意儿了,能搜到这篇文章的你不可能不知道它是什么。
直接进入git init之后的事情吧:
现在你已经在当前文件夹下面初始化了git,然后你手上有一个repo假设它是git@casa.com:casa.git
我们接下来要做的事情就是:
git remote add casa git@casa.com:casa.git
上面这条指令就把远程主机的git地址加入在当前工作目录下面了,而且别名是casa
如果远程主机上的这个repo里面已经有项目代码了,你是准备继续在原代码的基础上再做开发,那么需要获得远程主机的整个库信息,包括代码,包括分支信息等等。那么下面这条指令就是你必须要执行的:
git fetch casa
这条指令将casa指向的远程主机上面对应的代码库以及分支信息全部获取下来。现在你需要查看一下当前库里面有哪些分支,用下面这条指令:
git branch
我将我电脑上执行这条指令的数据放上来给大家看:
themeCasaTemp
* v5_new
加*号的就是你当前分支,在你那边很有可能有些不同。如果你要切换到你需要开发的分支上面去,执行这条指令:
git checkout themeCasaTemp
此时你就切换到themeCasaTemp上面去了。在你这边因为是刚刚从远程服务器上获得各种数据,本地的git默认不给你安排分支,即使你已经fetch了远程代码库,你的当前目录下面还是空空如也,所以你必须自己手动切换到一个合适的分支上。切换到这个分支上之后,你的当前工作目录的内容就是当前分支的内容。
你可以在这个分支继续开发,也可以以此分支为基础开创一个新的分支。
对于新开创的代码库什么都没有的情况,git remote add指令执行完之后你就可以在你的工作目录下面新建代码文件去编辑了,此时git默认安排你的分支为master。
但是这么做不怎么好。我的建议是将master做为稳定分支,自己再以master为基础开创一个新的分支作为开发分支。你也可以到后面再开创一个新的分支作为稳定分支,而当前的master分支作为开发分支,这个你随意。总之就是尽量不要将开发分支和稳定分支混在一起。
这里如果继续对分支说下去,还有很多,但这不是这一篇文章的重点,分支的内容我会在后面的其他文章中详细描述,这篇文章要做的事情就是帮助你从无到有。
OK,不管怎样,假设你现在已经修改好了代码,需要做提交。提交之前需要把你修改的文件和新建的文件添加到git的暂存区。添加文件的指令很简单:
git add 文件相对路径
如果相对路径里面没有给出具体文件名,那么git会默认把这个路径下面的所有文件全部加入暂存区,比如说:
git add .
就会把这个目录下面所有的,包括子目录的文件全部加入,但一般我们不这么做,因为有的时候vim产生的swp文件和一些临时的备份文件没有必要加入代码库中,所以我们需要让git知道哪些文件需要入库,哪些不需要。下一篇文章我就会跟大家聊聊怎么样让git知道这些事情。当务之急还是让我们从无到有。
此时你已经把文件加入暂存区了,这还远远不够,在放入远程代码库的时候你还需要对你的这次修改做一个提交,这个提交并不是提交到远程代码库中,只是一个类似标签的东西来为你的工作做一个收尾,以及记录你做的事情。提交的指令如下:
git commit -m "你自己对这次提交做的总结,比如记录一下你这次修改都做了些什么"
不带-m参数的话,git会打开一个记录你这次修改的文本文件,并且在第一行要求你写-m参数后面同样的东西,总之,你对这次工作的总结是逃不掉的。
如果你的这次工作仅仅是修改文件而没有新建文件,那么你可以用:
git commit -am "总结"
来同时完成添加文件修改并提交的任务。如果你新建了文件,那么这条指令在添加文件的时候会忽略那些你新建的文件。所以你必须要手动add他们。
bang!不要以为修改的文件就不要提交到暂存区了哦,修改过的文件对于git来说是一个全新的家伙,它会为修改过的文件做一个全新的快照,所以必须得提交。
commit的事情完成之后,你就可以推到远程服务器上面了,对应的指令是:
git push 远程服务器的git别名 分支名
在多人开发的环境下面,我们在push之前都得先从远程服务器拉取一下新的代码。在确保你的代码是最新的之前,git不会允许你将你的代码放入远程数据库。拉取的时候很有可能会遇到冲突(conflict),有关于冲突的处理,以及拉取代码的命令,我会在下一篇文章讲述。
好了,现在你已经建立了你的代码文件并且已经推到了远程服务器,从无到有,你做到了!