$ git config --global user.name "Your Name"$ git config --global user.email "email@example.com"
2.初始化一个Git仓库,使用
git init
命令:git init3.添加文件:git add Test4 ;//Test4文件夹及其下面的文件全部添加至版本库,多个文件:git add test1.txt test2.txt
4.提交文件只本地仓库:git commit -m "注释" ;也可以使用git commit -am "注释" //添加并提交
5.查看版本状态:git status
6.查看日志:git log ; git log --pretty=oneline
7.版本回退:git reset --hard HEAD^ //回退到上一个版本,或者:git reset --hard HEAD~ ;在Git中,用HEAD
表示当前版本上一个版本就是HEAD^
,上上一个版本就是HEAD^^,如果回退到上n个版本则 HEAD~n,另参见 9
。![]()
8.分析修改内容:git diff [文件名]git diff:是查看working tree与index file的差别的。git diff --cached:是查看index file与commit的差别的。git diff HEAD:是查看working tree和commit的差别的
9.查看命令历史:git reflog,通过此命令可以重返未来,如果你回退版本了,但现在又想回退回去,可通过此命令查看commit_id,再通过git reset --hard commit_id 命令恢复
![]()
恢复 test1文件 commit_id:3f76c8a
10.撤销修改10.1、只是修改工作区的内容,还没有进行add操作保存到暂存区:git checkout -- test1.txt![]()
10.2、修改内容已经保存至暂存区,想丢弃修改需分两步,第一步:使用版本回退命令:git reset HEAD file ;
第二步:回到了10.1的操作,按10.1操作进行即可
10.3、修改内容提交至本地版本库,还没提交至远程版本库,可以直接进行版本回退即可,参考:7 版本回退。
11.删除文件:git rm <filename>,然后commit提交
11.1、如果手工物理删除文件后,其状态:
这时,除可以上面方法外操作提交外,还可以用 git add --all //会级联进行添加、修改、删除。或:git commint -a -m "注释内容" //相当于先 -a 然后再 commit。
12、提交至远程仓库:git push //默认把当前master推送到远程,注意第一次推送时要加上 -u , git push -u 或git push -u origin master 以后可以省略(git push 或者 git push origin master )。12.1 推送分支:git push origin branch_name![]()
13.关联一个远程库:git remote add origin https/SSH地址;
关联后,使用命令
git push -u origin master
第一次推送master分支的所有内容;此后,每次本地提交后,只要有必要,就可以使用命令
git push origin master
推送最新修改;![]()
14.克隆一个仓库至本地: git clone https/SSH地址 eg:git clone git@git.oschina.net:sanfye/SpringMVC_MyBatis_Demo.git![]()
15.分支创建、删除、修改Git鼓励大量使用分支:
查看分支:git branch
创建分支:git branch <分支名>
切换分支:git checkout <分支名>
创建+切换分支:git checkout -b <分支名>
提交分支:推送分支:git push origin <分支名>
合并某分支到当前分支:git merge <分支名>//要先切换至当前分支,再进行合并(eg:合并至主线,要先切换至主线版本)。
删除分支:git branch -d <分支名>
强行删除分支:git branch -D <分支名> 如果要丢弃一个没有被合并过的分支,必须通过强行删除。
![]()
查看本地分支和远程仓库分支:git branch -a/--all
删除一个远程分支:git push origin --delete <分支名> 或: git push origin:<分支名> //推送一个空的分支到远程分支,也相当于删除一个远程分支。
查看分支的详细信息:git branch -av
16.禁用Fast forward 方式合并代码通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息,git merge --no-ff -m "注释" <分支名> //合并代码并禁用Fast fowward。
git log --graph 命令可以看到分支合并图。![]()
17.查看远程库的信息:git remote 或者:git remote -v
18.从远程仓库拉取内容:git pull
19.在本地创建和远程分支对应的分支,使用git checkout -b branch-name(本地分支名) origin/branch-name(远程分支名)
,本地和远程分支的名称最好一致。
建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name(本地分支名) origin/branch-name(远程分支名);注意--set-upstream方法将要弃用,新版的用:git branch --set-upstream-to branch-name或git branch --track branch-name 。
从本地推送分支,使用git push origin branch-name。
20.创建和查看标签创建标签:git tag <name>
用于新建一个标签,默认为HEAD
,也可以指定一个commit id;eg:git tag v2.0
默认标签是打在最新提交的commit上的。有时候,如果忘了打标签,怎么办?方法是找到历史提交的commit id,然后打上就可以了:
git log --pretty=oneline --abbrev-commit //查找历史提交commit_id信息。
git tag v1.1 commit_id //创建指定标签
创建带有说明性的标签,用
-a
指定标签名,-m
指定说明文字:git tag -a v1.5 -m "version 1.5 released" commit_id创建带PGP签名的标签:git tag -s V1.5 -m "版本说明信息" commit_id
查看标签信息:git tag 或 git show <tag_name>
命令
git push origin <tagname>
可以推送一个本地标签;命令
git push origin --tags
可以推送全部未推送过的本地标签;命令
git tag -d <tagname>
可以删除一个本地标签;- 命令
git push origin :refs/tags/<tagname>
可以删除一个远程标签。- 命令git push origin:<tagname> //推送一个空的标签库,相当于删除一个远程同名的标签库
- 命令git push origin --delete <tagname> //删除一个远程分支
21.配置别名 alias ,注意:加上--global
是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用git config --global alias.st status
git config --global alias.co checkout git config --global alias.ci commit git config --global alias.br branch
git config --global alias.unstage 'reset HEAD'
git config --global alias.last 'log -1' //git last,让其显示最后一次提交信息:也可以直接在配置文件中进行修改:修改当前仓库的Git配置文件,文件放在.git/config
文件中; 全局的配置文件放在 用户主目录下的一个隐藏文件.gitconfig
中;在配置文件加上(可以直接对配置文件进行修改):
[alias] last = log -1
22.查看文件
- git ls-files //会列出当前目录下的所有文件
git ls-files --directory //也是列出当前目录下的文件,不知和上面的命令有何区别
- git ls-files -c/--cached //列出缓存中的文件,也是默认的
- git ls-files -d/--deleted //列出删除的文件
- git ls-files -m/--modified //列出修改过的文件
- git ls-files -o/--others/-i/--ignored //列出未被git跟踪的文件或被忽略的文件
官方文档:http://git-scm.com/docs
git工具,msysgit下载地址:http://git-scm.com/download 或:http://download.csdn.net/detail/sanfye/8992743
TortoiseGit类似SVN的TortoiseSVN(之前使用svn的朋友可能比较喜欢):http://download.csdn.net/detail/sanfye/8992773
该文档会持续更新,如有不对的欢迎大家指出来,以免误人子弟。