如何从现在回到过去呢??
- git reset –hard HEAD^ #返回到上一个版本
- git reset –hard HEAD~100 #返回往上100个版本
如何从过去回到现在呢??
方法:共两步
- 用git reflog
命令找到版本号
- 然后用命令git reset --hard versionNumber #versionNumber为版本号
问题:当我们要add很多文件,但是有那么一个不想add的,应该如何来完成呢??
例如我们想提交我们当前目录写的所有后缀为.java的文件,除了一个test.java这个文件不提交。
步骤如下:
注意:Git跟踪并管理的是修改,而不是文件,理解这一点很重要
Git知道你删除了文件,git status命令会告诉你,现在你可能是2种意图之一,如下;
大家都比较熟知Github,GitHub就是一个免费托管开源代码的远程仓库。
当我们有一个Github账号时,我们就可以利用Github来对我们的文件进行管理了。那应该如何将我们本地仓库的内容推送到远程仓库中去呢??
步骤如下:
- 第一步:git remote add origin git@github.com:xxxxxxx/remoterepositoryname.git #xxxxxxx为你的用户名,后面的为你的仓库名。这是与远程仓库建立连接。
- 第二步:git push -u origin master #若提示origin已存在,则用git remote rm origin删除。
以后用git push origin master 推送最新修改即可
假设我们从零开发,最好的方式是先创建远程库,然后,从远程库克隆。
例如:我们在Github中新建了一个testgit远程库。则用如下命令完成克隆。
git clone git@github.com:xxxxxx/testgit.git
或者是:git clone https://github.com/xxxxxx/testgit.git#这种方式要输入账户名和密码,比较麻烦,但是有的情况下,我们通过第一种命令总是不能正确的进行clone,在这种情况下,可以选择此命令来完成clone。
master分支是主分支,我们一般不再这个分支上面工作,因此我们就需要创建分支,当我们在新分支上面完成我们的工作后,我们一般又要对分支进行合并,将我们的工作合并到主分支上面去。下面进行详细的介绍
git branch dev #创建dev分支
git checkout dev #切换到dev分支
注意:合并分支时,加上- -no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast-forward合并就看不出曾经做过合并。
用如下命令可以查看分支历史
git log -- graph --pretty=oneline --abbrev-commit
恢复bug时,我们会通过创建新的bug分支进行恢复,然后合并,最后删除。
但是,当我们的手头的工作没有完成时,先要把工作现场 git stash
一下,然后去修复bug,恢复后,用git stash pop
回到回到工作现场继续工作。
要查看远程库的信息,用如下命令:git remote
,若用git remote -v
会显示更详细的信息。
推送分支,就是把该分支上的所有本地提交推送到远程库中,推送时,要提交本地分支,这样,Git就会把分支推送到远程库对应的远程库分支上。如下:
- git push origin master #推送到master分支上
- git push origin dev #推送到dev分支上
但是,在我们推送的过程中,我们会遇到推送失败的情况,这可能是因为远程分支比你的本地分支更新,需要先用git pull
试图合并,如果合并有冲突,则需要解决冲突,并在本地提交,直到没有冲突后再用 git push origin <branchname>
推送就能成功。
注意:如果使用git pull
命令时 提示no tracking information
,则说明本地分支和远程分支的链接关系没有创建,用如下命令即可
git branch - -set-upstream <branchname> origin/<branchname>
git tag <name>
就可以打一个新的标签了。也可以指定标签信息,如下git tag -a tagname -m "blabla..."
git tag -d tagname
git push origin tagname
,或者一次性推送所有标签到远程:git push origin -- tags
git tag -d wu
;然后,从远程删除:git push origin :refs/tags/wu
偷懒是每个人的天性,我也喜欢偷懒
如果我们敲git st
能够代替git status
时,我们都希望能够这么做,但是,应该怎么才能这么做呢?这就需要我们配置一下即可完成。
用如下命令:git config --global alias.st status
即可。其它的命令都可以这样来配置,这样方便我们更好的操作。
这个是我学习廖雪峰老师git教程的一点总结,若觉得我的博客有不妥的地方,可以通过我删除。廖老师的git教程确实讲解的挺好的,也算是系统的学习了一下Git版本控制这个工具。在此,对老师表示感谢,这里奉上廖老师的git教程链接:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000,教程上讲解的更详细。
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文:http://blog.csdn.net/u010412719/article/details/46917135