[关闭]
@markheng 2016-03-12T04:43:30.000000Z 字数 2698 阅读 1773

Git学习

git 学习笔记


新建一个目录,进入目录后用

git init

可以将当前目录创建为git的一个仓库repository

git add file

将文件加入暂存区

git commit -m "comment"

将暂存区修改提交到仓库并且留下comment留言

git status

查看当前仓库状态

git log

查看当前版本之前的各个commit记录,会因为reset而被消除一部分

git reflog

查看所有的操作记录

git reset --hard HEAD

查看当前版本说明

git reset --hard HEAD^(^^^..)

回退的之前的一(二三四...)个版本

git reset --hard HEAD~20

会退到之前的第二十个版本,从一开始(HEAD~1 = HEAD^)

git diff file

查看file的不同

git checkout -- filename

命令git checkout -- readme.txt
意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:

一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

总之,就是让这个文件回到最近一次git commit或git add时的状态。

命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到git checkout命令。

git rm file

删除文件,与add类似

远程库

git remote add origin [giturl]

添加远程库

git push -u origin master

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

git push origin master

将本地master分支推送到远程origin库

git remote

查看远程仓库名称

git remote -v

查看远程仓库详细信息

git pull

拉取远程分支内容到本地分支

git checkout -b branch-name origin/branch-name

创建与远程分支对应的本地分支

多人协作

多人协作的工作模式通常是这样:

首先,可以试图用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。

这就是多人协作的工作模式,一旦熟悉了,就非常简单。

分支管理

git checkout -b dev

创建并切换到分支dev
相当于一下两条

git branch dev

创建dev分支

git checkout dev

切换到dev分支

git checkout

查看当前已经存在的分支

git merge dev

将当前分支与dev分支合并

git branch -d

删除分支

分支冲突时git status可以查看冲突的详细情况

git log --graph

查看分支合并的情况

git merge --no-ff -m 'comments' dev

合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。

git stash

Git还提供了一个stash功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作

git stash list

查看暂存的分支情况

git stash apply

回复存档

git stash drop

删除存档

git stash pop

恢复并删除存档

git stash apply stash@{0}

恢复指定的存档

git branch -D

强制删除一个没有合并的分支

标签

http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001376951758572072ce1dc172b4178b910d31bc7521ee4000

git tag

在当前分支的commit处打上标签

git tag

为id为commit-id的commit打上标签

git tag -a -m "blabalba.."

为标签加上说明

git push origin

可以推送一个本地标签

git push origin --tags

可以推送全部未推送过的本地标签

git tag -d

可以删除一个本地标签

git push origin :refs/tags/

可以删除一个远程标签。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注