git快速上手教程

前几周我第一次同时推进几个任务,结果迷失在git版本的海洋中不能自拔。后来在同事的帮助下终于脱坑,在此把一些git的简明用法分享给git新手们。


git是用来进行版本控制的,对于同一个项目,不同的电脑上可以存有不同的版本,同一台电脑上也可以保存多个版本。每个版本或者有唯一的父版本,或者由两个版本合并而来;一个父版本可以有多个子版本。所以,使用git进行项目开发的过程,就是多个git版本不停的分叉与合并的过程。而之所以有多个版本,一是因为多人协作,一是要同时开发多个功能。


git环境配置就不说了,就讲讲如何使用git。


一、代码提交

首先通过git pull获取远程的最新代码,如果出现冲突的话后文另说。

然而做了一些改动后,可以通过git add来添加全部或者部分改动。

在功能基本完成后,可以通过git commit命令,把刚添加的改动打包成一个提交,从而在现有的版本之上生成一个新的版本。

如果不想生成新的版本,而是把这些改动添加到现有的版本里,可以使用git commit --amend命令。

在确认功能完成后,可以通过git push命令把本地新建或修改过的版本提交到远程服务器上。


二、状态查看

通过git status查看还未提交的改动,以及是否与服务器代码同步。

通过git log查看当前的版本信息和所有的父版本信息。

通过git reflog查看所有的版本改动信息(哪怕不是当前版本的父版本也能看到)。

通过git branch查看所有的分支信息。


三、撤销操作

通过git reset <文件名>来让一个已经add的文件返回至未add状态。

通过git checkout <文件名>来取消一个文件的修改。

通过git reset head来取消当前的版本信息,但改动将会保留(需重新提交)。

通过git revert来在某个提交的基础之上创建一个完全相反的提交,从而可以抵消之前的改动。


四、跳转操作

通过git checkout <commit id>/<branch>来跳转到某一个版本或分支。

通过git reset --hard <commit id>来跳转到某一个版本,并把当前的分支也指向这个版本。

通过git rebase -i,并把某个commit的pick改为edit来跳转去修改之前的commit,修改完成后通过git rebase --continue来回到最新版本(将包含修改后的commit)。


五、版本操作

通过git fetch来获取远程服务器的版本。

通过git branch <name>来创建新的分支name。

通过git merge <commit id>/<branch>来把某个版本合并到当前版本,如果发生冲突,需要再在解决冲突后输入git rebase --continue,或者git rebase --abort来取消合并。


总而言之,命令是挺多的。所以在一开始建议还是老老实实单版本运作,先熟悉提交操作,再熟悉撤销操作。熟练后可以再通过rebase和log命令来进行多个有继承关系的commit的多功能开发,最后再通过reflog,checkout和reset --hard命令进行多个不相关的commit的开发。像我之前正是因为不恰当的频繁使用reset --hard,最终在版本的海洋中越潜越深,最后索性放弃挣扎深深的沉醉了......囧

猜你喜欢

转载自blog.csdn.net/wlkdb/article/details/53967922