1.git init:git init命令创建一个新的Git仓库。它用来将已存在但还没有版本控制的项目转换成一个Git仓库,或者创建一个空的新仓库。
git init
将当前的目录转换成一个Git仓库。它在当前的目录下增加了一个.git文件夹,于是就可以开始记录项目版本了。
git init
在指定目录创建一个空的Git仓库。运行这个命令会创建一个名为directory,只包含.git子目录的空文件夹。
git init --bare
初始化一个裸的Git仓库,但是忽略工作目录。共享的仓库应该总是用--bare标记创建(见下面的讨论)。一般来说,用—bare标记初始化的仓库以.git结尾。比如,一个叫my-project的仓库,它的空版本应该保存在my-project.git目录下。
2.git clone:git clone命令拷贝整个Git仓库。这个命令就像svn checkout一样,除了”工作副本“是一个完备的Git仓库——它包含自己的历史,管理自己的文件,以及环境和原仓库完全隔离。
git clone
将位于的仓库克隆到本地机器。原仓库可以在本地文件系统中,或是通过HTTP或SSH连接的远程机器。
例子:(1)git clone ssh://john@example.com/path/to/my-project.git
(2) git clone ssh://git@172.16.33.3:9422/home/gitrepo/ios.git
(3)git clone git@192.168.45.4:/home/gitrepo/w3cschoolcc.git
(4)git clone https://github.com/wsswdl/wsswdl.github.com.git
3.git config:git config命令允许你在命令行中配置你的Git安装(或是一个独立仓库)。这个命令定义了所有配置,从用户信息到仓库行为等等。
4.git add:git add命令将工作目录中的变化添加到缓存区。它告诉Git你想要在下一次提交时包含这个文件的更新。但是,git add不会怎么影响你的仓库——在你运行git commit前更改都不会被记录。
5.git commit:git commit命令将缓存的快照提交到项目历史。
git commit --amend
合并缓存的修改和上一次的提交,用新的快照替换上一个提交。缓存区没有文件时运行这个命令可以用来编辑上次提交的提交信息,而不会更改快照。
6.git status:git status命令显示工作目录和缓存区的状态。你可以看到哪些更改被缓存了,哪些还没有,以及哪些还未被Git追踪。status的输出 不会 告诉你任何已提交到项目历史的信息。如果你想看的话,应该使用git log命令。
7.git log:git log 命令显示已提交的快照。你可以列出项目历史,筛选,以及搜索特定更改。git status 允许你查看工作目录和缓存区,而git log只作用于提交的项目历史。
git log
使用默认格式显示完整地项目历史。如果输出超过一屏,你可以用空格键来滚动,按q退出。
git log -n
用限制提交的数量。比如git log -n 3只会显示3个提交。
git log --oneline
将每个提交压缩到一行。当你需要查看项目历史的上层情况时这会很有用。
git log --stat
除了git log信息之外,包含哪些文件被更改了,以及每个文件相对的增删行数。
git log -p
显示代表每个提交的一堆信息。显示每个提交全部的差异(diff),这也是项目历史中最详细的视图。
8.git checkout:切换分支。
9.git revert:git revert命令用来撤销一个已经提交的快照。它是通过搞清楚如何撤销这个提交引入的更改,然后在最后加上一个撤销了更改的 新 提交,而不是从项目历史中移除这个提交。这避免了Git丢失项目历史,这一点对于你的版本历史和协作的可靠性来说是很重要的。
git revert
生成一个撤消了引入的修改的新提交,然后应用到当前分支。
10.git reset:
git reset
从缓存区移除特定文件,但不改变工作目录。它会取消这个文件的缓存,而不覆盖任何更改。
git reset
重设缓冲区,匹配最近的一次提交,但工作目录不变。它会取消所有文件的缓存,而不会覆盖任何修改,给你了一个重设缓存快照的机会。
撤销(revert)和重设(reset)对比
撤销和重设相比有两个重要的优点。首先,它不会改变项目历史,对那些已经发布到共享仓库的提交来说这是一个安全的操作。至于为什么改变共享的历史是危险的,请参阅git reset一节。
其次,git revert可以针对历史中任何一个提交,而git reset只能从当前提交向前回溯。比如,你想用git reset重设一个旧的提交,你不得不移除那个提交后的所有提交,再移除那个提交,然后重新提交后面的所有提交。不用说,这并不是一个优雅的回滚方案。
11.git clean:git clean命令将未跟踪的文件从你的工作目录中移除。
12.git rebase:是将分支移到一个新的基提交的过程。从内容的角度来看,rebase只不过是将分支从一个提交移到了另一个。但从内部机制来看,Git是通过在选定的基上创建新提交来完成这件事的——它事实上重写了你的项目历史。理解这一点很重要,尽管分支看上去是一样的,但它包含了全新的提交。
13.git merge:分支合并
将master分支合并到feature分支最简单的办法就是用下面这些命令:
git checkout feature
git merge master
14.git remote:git remote命令允许你创建、查看和删除和其它仓库之间的连接。远程连接更像是书签,而不是直接跳转到其他仓库的链接。它用方便记住的别名引用不那么方便记住的URL,而不是提供其他仓库的实时连接。
git remote
列出你和其他仓库之间的远程连接。
git remote add
创建一个新的远程仓库连接。在添加之后,你可以将作为便捷的别名在其他Git命令中使用。
git remote rm
移除名为的远程仓库的连接。
git remote rename
将远程连接从重命名为。
15.git fetch:git fetch命令将提交从远程仓库导入到你的本地仓库。拉取下来的提交储存为远程分支,而不是我们一直使用的普通的本地分支。你因此可以在整合进你的项目副本之前查看更改。
16.git pull:在基于Git的协作工作流中,将上游更改合并到你的本地仓库是一个常见的工作。我们已经知道应该使用git fetch,然后是git merge,但是git pull将这两个命令合二为一。
17.git push:Push是你将本地仓库中的提交转移到远程仓库中时要做的事。它和git fetch正好相反,fetch将提交导入到本地分支,而push将提交导出到远程分支。它可以覆盖已有的更改,所以你需要小心使用。
18.git branch:
列出分支:git branch
删除分支:git branch - d