常用命令
-
设置账号和邮箱
git config --global user.name "xxx" git config --global user.email "xx@xx.com"
-
git init
在当前目录创建一个版本库
.git
目录使用
git init –-bare
可以建立一个裸仓库即不生成.git
目录直接放到当前目录,不关联工作目录,一般用在服务端创建 git 仓库 -
git add <path>
主要用于把我们要提交的文件的信息添加到暂存区(stage)中,当我们使用
git commit
时,git 将依暂存区中的内容来进行文件的提交 -
git commit
把修改(暂存区)提交到版本库中。一般使用
git commit -m "message"
。如果你的文件之前已经提交过,但这次的改动还没有进 stage,可以使用git commit -am "message"
和先 add 再 commit 的效果一样 -
git log
查看 HEAD 指向的分支的 log,
--pretty=oneline
简略查看 -
git reflog
可以查看所有分支的所有操作记录
-
git reset
在本地仓库中回退到某个 commit
-
git reset –mixed
此为默认方式,不带任何参数的
git reset
,即时这种方式,它回退到某个版本,只保留源码,回退 commit 和 index 信息 -
git reset –soft
回退到某个版本,只回退了 commit 的信息,不会恢复到 index file 一级。如果还要提交,直接 commit 即可
-
git reset –hard
彻底回退到某个版本,本地的源码也会变为上一个版本的内容
-
-
git checkout
把文件在工作区的修改全部撤销,这里有两种情况:
一种是 readme.txt 自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是 readme.txt 已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
-
git rm
从版本库删除文件
-
git clone <url>
从远程仓库克隆一个项目
一次 Git 克隆会建立你自己的本地分支 master 和远程分支 origin/master,并且将它们都指向 origin 上的 master 分支。
-
git remote add origin <url>
把本地项目与远程项目关联
-
git push origin master
把本地 master 分支推动到远端的 origin(相当于本地的 HEAD)
-
git pull
从远端抓取并试图合并
-
git branch <name>
创建一个分支
-
git checkout <name>
切换到某个分支,
git checkout -b <name>
创建同时切换到分支 -
git branch
列出所有分支,当前分支前面会标一个*号
-
git merge <name>
把某个分支合并到当前分支,默认是快速合并,有时候要解决冲突
Git 默认使用快进式合并(fast-farward merge),只是将 master 分支指针指向 bugfix-0.1 分支,而使用
git merge --no-ff name
了则会创建一条合并日志,保证分支删除时不丢失历史日志对应的 tortoisegit 合并分支选项是非 Fast Forword
-
git branch -d branchName
删除分支,有时候完成合并后,不需要了就可以删除了因为创建、合并和删除分支非常快,所以 Git 鼓励你使用分支完成某个任务,合并后再删掉分支,这和直接在 master 分支上工作效果是一样的,但过程更安全。
-
git tag tagName
创建标签,默认标签是打在最新提交的 commit 上的
-
git tag -d tagName
删除本地标签
-
git push origin v1.0
推送标签
-
git push origin :v1.0
删除远端标签
-
创建一个空分支
一般创建分支都是基于某个提交或者基于某个分支进行创建,这样创建出来的分支都是有父节点的提交记录的
通过
git checkout --orphan xxxx
可以创建一个没有提交记录的分支