常用git命令总结
使用git,总结了一些常用git命令放在这里,供以后查找使用。
1,文件的三种状态
已提交(cmmitted):该文件已经被安全的保存到本地数据库中了
已修改(modified):该文件被修改了,但是还没有提交保存
已暂存(staged):把已经修改的文件放在下次提交时要保存的清单中
2,配置个人用户名和电子邮件地址 例如:
$ git config --global user.name 'John Doe'
$ git config --global user.email [email protected]
3,查看配置信息
$ git config list
4,查看某个环境变量的设定
$ git config user.name
5,获取帮助方式有三种
$ git help <verb>
$ git <verb> --help
$ man git -<verb>
6,初始化一个新仓库
在项目目录下执行 $ git init
把文件加入版本控制 $ git add *.txt
提交 $ git commit -m 'add some txt file'
7,克隆仓库
$ git clone [url]
例如: $ git clone git://github.com/schacon/grit.git 执行这个命令会在当前的目录下新建一个grit的目录,其中包含.git目录,如果需要自己重新命名项目名只需要在命令后面加上自己起的名字即可,例如 $ git clone git://github.com/schacon/grit.git mygrit
8,检查当前文件状态
$ git status
Untracked files 未加入管理的文件们
Changes to be committed 说明是暂存状态
Changes not staged for commit 文件内容发生了变化,但是还没有放到暂存区
9,忽略某些文件
在当前目录下新建.gitignore 的文件,然后添加要忽略的文件
10,查看已暂存和未暂存的更新
$ git diff 查看尚未暂存的文件更新了那部分
$ git diff --staged或--cached 查看已暂存起来的文件和上次提交时的快照之间的差异
11,提交更新
$ git commit 或 $ git commit -m 'readme'
跳过暂存区 $ git commit -a 即该提交之前不需要git add
12,移除文件
$ git rm
如果想从git仓库中删除但希望保留在当前工作目录中需要 $ git rm --cached
13,移动文件
$ git mv 相当于以下三个命令
$ mv a.txt a
$ git rm a.txt
$ git a
14,查看提交历史
$ git log
$ git log -p -2 -p展示每次提交和内容差异,-2仅显示最近两条更新
15,撤销操作
修改最后一次提交 $ git commit --amend
取消已暂存的文件 $ git reset HEAD <file>...
取消对文件的修改 $ git checkout --<file>
16,查看当前远程库
$ git remote
17,添加一个新的远程仓库,可以指定一个简单的名字以便将来引用
$ git remote add [shortname] [url]
例如:$ git remote add pb git://github.com/paulboone/ticgit.git
18,从运行仓库中抓取数据
$ git fetch [remote-name] fetch命令只是将远端数据拉到本地仓库,并不自动合并到当前工作分支,所以只有当你确实准备好了,才能手工合并。
一般我们会使用$ git pull从原始克隆的远端仓库中抓取数据,并合并当当前分支
19,推送数据到远程仓库
$ git push [remote-name] [branch-name]
20,查看远程仓库信息
$ git remote show [remote-name]
21,远程仓库的删除和重命名
$ git remote rename nowname newname
$ git remote rm name
22,创建一个分支
$ git branch testing
转换到testing分支下 $ git checkout testing
转换到master分支下 $ git checkout master
23,分支的创建和合并
$ git checkout -b iss53 相当于
$ git branch iss53 和 $ git checkout iss53
合并 首先切换到master分支 $ git checkout master 然后合并 $ git merge testing
24,删除分支
$ git branch -d testing
25,分支管理
列出分支清单 $ git branch *代表当前所在的分支
查看各分支最后一个提交对象的信息 $ git branch -v
查询未与当前分支合并的分支 $ git branch --no-merged
查询已经和当前分支合并的分支 $ git branch --merged
强制删除一个分支 $ git branch -D testing