@markheng
2016-03-12T12:43:30.000000Z
字数 2698
阅读 1913
git
学习笔记
新建一个目录,进入目录后用
可以将当前目录创建为git的一个仓库repository
将文件加入暂存区
将暂存区修改提交到仓库并且留下comment留言
查看当前仓库状态
查看当前版本之前的各个commit记录,会因为reset而被消除一部分
查看所有的操作记录
查看当前版本说明
回退的之前的一(二三四...)个版本
会退到之前的第二十个版本,从一开始(HEAD~1 = HEAD^)
查看file的不同
命令git checkout -- readme.txt
意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。
命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到git checkout命令。
删除文件,与add类似
添加远程库
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
将本地master分支推送到远程origin库
查看远程仓库名称
查看远程仓库详细信息
拉取远程分支内容到本地分支
创建与远程分支对应的本地分支
多人协作的工作模式通常是这样:
首先,可以试图用git push origin branch-name推送自己的修改;
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name。
这就是多人协作的工作模式,一旦熟悉了,就非常简单。
创建并切换到分支dev
相当于一下两条
创建dev分支
切换到dev分支
查看当前已经存在的分支
将当前分支与dev分支合并
删除分支
分支冲突时git status可以查看冲突的详细情况
查看分支合并的情况
合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。
Git还提供了一个stash功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作
查看暂存的分支情况
回复存档
删除存档
恢复并删除存档
恢复指定的存档
强制删除一个没有合并的分支
在当前分支的commit处打上标签
为id为commit-id的commit打上标签
为标签加上说明
可以推送一个本地标签
可以推送全部未推送过的本地标签
可以删除一个本地标签
可以删除一个远程标签。