1、常用命令行:
1.1、git add . 将所有变更的代码提交到暂存区
1.2、git commit -m '提交描述' 将暂存区里的代码提交到本地仓库
1.3、git push 将本地仓库的代码提交到远程仓库
1.4、git checkout <本地分支名> 切换分支
1.5、git checkout -b <本地分支名> <远程分支> 创建一个本地分支,并且与远程分支自动建立链接,之后用git push即可默认提交到该远程分支
1.6、git checkout -d <本地分支名>删除本地分支
2、撤销修改:
2.1、git checkout -- <file> 这个文件回到最近一次git add
时的状态。eg:git checkout -- test.txt
场景:当我修改了某个文件,需要放弃修改并还原到修改前的代码时。分两种情况
test.txt自修改后还没有被放到暂存区(还没有git add <file>),现在,撤销修改就回到和版本库一模一样的状态;
test.txt已经添加到暂存区后(已经git add <file>),又作了修改,现在,撤销修改就回到暂存区里文件的状态。
注意:命令中的--
很重要,没有--
就是切换分支的命令了
2.2、git reset HEAD <file> 把提交到暂存区修改撤销掉
场景:当我修改了某个文件,并且使用了git add <file> 将文件提交到了暂存区。但还没有git commit 提交到本地仓库,发现文件有错误,需要撤销刚才加到暂存区的文件。
注意:并不会把当前工作区里的文件修改撤销,如果需要撤销,需要使用git checkout -- <file>
3、版本回退
3.1、git reset --hard HEAD^
场景:当我修改了一个文件,并且使用了git commit 提交了本地仓库,然后想回退怎么办?
每次git commit时git都会生成一个十六进制版本号,使用git log可以查看提交日志。要想回退,必须要知道当前版本号,以及想要回退到哪个版本号。 当前版本号git使用HEAD标识,要想回退到上一个版本号就是 HEAD^ ,上上个版本HEAD^^ 往上100个版本号呢HEAD^^^^^^^^....也可以,但推荐使用HEAD~100
3.2、git reset -hard <version> 指针指到某一个版本号
注意:不一定回退,也可以前进哦。比如如果回退完又后悔了,只要记住版本号,就可以再回来哦。
版本号没必要写全,前几位就可以了。git会自动去找,但也别只写一两位,如果git找到多个版本号,就无法确定要回退到哪个版本号了。
3.3、git reflog 查看历史输出的命令行
3.4、总结:HEAD指向的版本就是当前版本,GIT允许我们在版本历史之间穿梭,使用 git reset --hard <version>
穿梭前可以使用git log 查看提交历史以及对应的版本号,以便确定回退的版本
回退后悔了想要重返未来,用git reflog 查看命令历史,找到之前的版本号,再次使用git reset --hard <version>重返未来。
GIT的版本回退快,而且消耗的资源少,因为GIT内部有个指向当前版本的HEAD指针,所以当你进行版本回退时,GIT仅仅是把HEAD指向某个版本号,仅仅是移动了下指针而已,感叹GIT的强大。