结合Github使用git管理代码的简便方法

来源:互联网 发布:vmware for mac破解版 编辑:程序博客网 时间:2024/05/18 00:11

Git是毫无疑问得强大。但是,为了初步体验git的方便,可以采用稍微naive的方法入手git。先用起来,上手,慢慢地逐步改进工作流程,最终熟练掌握git的使用。

前段时间,github搞活动,利用学校的邮箱可以申请建私有库,试了下,的确很容易申请,随便填了下,便到手了。由于git使用不是特别熟练,为了将账户用起来,只能想一套比较naive的流程,如下(默认认为已经在github上添加好了ssh key)。

1、在github上建立一个仓库,比如asdf(可以选择包含README)。然后,在自己的机器上新建一个目录,比如abc,并进入该目录。

2、利用命令git clone git@github.com:/GIT_ID/asdf,将刚刚在github上建立的仓库clone到本地。这样,本地就会出现一个master分支,并且默认工作在这个分支。

3、修改仓库的代码并提交。我们首先从master新建出一个分支(该分支主要用于修复bug A),比如bra(git branch bra),然后,切换到该分支(git checkout bra),修改代码,并提交(首先git add "所有的改动文件",然后git commit -m “提交的说明/注释”。ps:如果提交说明写错了,或者是漏了文件,可以重新将漏掉的文件git add,然后,用git commit --amend -m “提交说明”重新提交,这样上次的错误提交将被这次正确的所修改,而不会产生新的提交记录。)。

4、将上面的修改推送到github。git push origin bra命令会将当前的工作分支(也就是bra分支)推送到github。这样,在github上就会看到一个新的分支,名字也是bra。实际上,该命令的完整格式是git push origin bra:bra,意思是将本地的bra分支推动到远程仓库origin(origin是远程仓库clone到本地之后的默认名称),并将其也命名为bra。但是,由于bra是当前的工作分支,所以可以省略最后冒号后面的bra。

5、所有的本地修改都可以参照3、4步骤,直到bug A被修复。这样的话,就可以是本地的改动在github都可以看到。Bug A被修复之后,我们可以将该分支合并到master分支,然后将该分支删除。

6、将bra分支合并到master。为了合并的简便,我们采用github的merge功能。首先,发起一个pull request,base分支选择master,compare分支选择bra。pull request创建之后就可以看到一个可以merge的提示,直接merge就可以了(merge成功之后,还可以按照提示删掉bra分支)。这样在github的Network选项中就可以,看到bra已经merge到master分支。

7、如果在上面没有删掉bra分支,也可以用命令git push :bra在本地删除bra。由于bra分支是关联到远端github上面的bra分支的,将bra分支推送到空,这样便将远端的bra分支删除了。(这只是我的理解,不过,该命令的确可以删掉远端的bra分支。)

8、更新本地的master。git checkout maser切换到master分支,然后,git pull即可以将本地的master更新到和远端一样的状态。最后,可以用git branch -d bra来删除本地的bra分支。

这样,以后如果需要更新什么feature或者修复什么bug都可以按照上述的流程,新建一个branch操作,之后,删除掉。Clean and Tidy.

这里说一些会用到的场景:

(1)将现有的库添加到另外一个远端仓库

比如我现在在远端新建了一个空库,然后,我想把原来的一个git仓库放到这个新建的远端。这时,要做的工作就是到本地那个代码仓库下,改一下远端仓库origin的指向。但是如果直接改,会提示“fatal: remote origin already exists.”,所以要先用"git remote rm origin"在本地删除原来的origin指向,再用“git remote add origin git@10.xx.xx.xx:user_name/project_name.git”来修改origin远端库的指向。

(2)git rebase

rebase的意思是改变一个分支的base,也就是起始的那个位置。

ps:

git命令

推送本地分支到远程服务器
$ git push <remote> <branch-name>[:<remote-branch-name>]
远程分支名如果省略,则使用本地分支名作为远程分支名
$ git push <remote> <branch-name>
将origin仓库的远程分支remote_bra映射到本地并命名为local_bra
$git checkout -b local-bra origin/remote_bra
自动暂存所有git跟踪(track)的文件,包括删除的已跟踪文件,但是不会包含新建的没有跟踪的文件
$git add -u

原创粉丝点击