快速掌握Git的常用指令
2013-09-15 14:59
169 查看
1.配置用户信息
Git提供了一个叫做git config的工具,专门用来配置或读取相应的工作环境变量。这里主要介绍如何配置个人的户信息:
这两条指令分别用于配置个人的用户名以及电子邮箱地址。另外,如果需要查阅现有的配置信息可以使用下面的命令:
2.初始化新仓库
要对现有的某个项目开始用 Git 管理,只需到此项目所在的目录,执行:
3.检出仓库
执行如下命令以创建一个本地仓库的克隆版本:
如果是远端服务器上的仓库,你的命令会是这个样子:
或者:
4.检查文件状态
要确定哪些文件当前处于什么状态,可以使用git status命令:
5.跟踪与添加文件
如果用户新创建一个文件,想把该文件也加入到版本控制之中去,首先需要对该文件进行跟踪,这时需要使用git add命令:
此时再运行git status命令,会看到README文件已被跟踪,并处于暂存状态:
如果我们修改之前已跟踪的文件,修改完之后已跟踪文件的内容就发生了改变,但是却还没有放入暂存区内。这时我们要暂存这次更新,也需要运行git add命令:
6.忽略某些文件
通常有一些自动生成的文件无需纳入Git管理中来,我们可以创建一个名为.gitignore的文件,列出要忽略的文件模式,例如:
7.查看具体更新
git status命令的显示比较简单,如果要查看具体修改了哪些地方可以使用git
diff命令。比较工作目录中当前文件和暂存区域文件快照之间的差异,可以直接输入git diff命令:
若要看已经暂存起来的文件和上次提交时的快照之间的差异,可以使用git diff --cached命令,或者git
diff --staged命令:
8.提交更新
这里介绍一下Git工作流的概念,本地仓库是由git维护的三棵树组成的。第一个是你的“工作目录”,它持有实际文件;第二个是“缓存区”(我们之前提及的暂存区域),它用来临时保存你的改动;最后是“HEAD”,指向你最后一次提交后的结果。
改动后的文件运行git add命令添加到缓存区后,便可使用以下命令提交更新:
此时,你的更新已经提交到了HEAD,但还没到你的远端仓库。
9.查看提交历史
想回顾提交历史,可以使用git log命令:
我们常用-p选项展开显示每次提交的内容差异:
10.推送改动
已经提交了的改动可以执行git push [remote-name] [branch-name]命令推送至远端仓库:
11.分支操作
使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。比如创建一个testing分支,运行git
branch命令:
要切换到其他分支,可以执行git
checkout 命令。我们现在转换到新建的 testing 分支:
要新建并切换到某一分支,运行git checkout并加上-b参数:
删除分支:
除非你将分支推送到远端仓库,不然该分支是不为他人所见的:
12.更新与合并
要更新你的本地仓库至最新改动,执行git
pull以在你的工作目录中获取并合并远端的改动。要合并其他分支到你的当前分支,执行:
两种情况下,git 都会尝试去自动合并改动。不幸的是,自动合并并非次次都能成功,并可能导致冲突。这时候就需要你修改这些文件来人肉合并这些冲突了,改完之后,你需要执行如下命令以将它们标记为合并成功:
在合并改动之前,也可以使用如下命令查看:
Git提供了一个叫做git config的工具,专门用来配置或读取相应的工作环境变量。这里主要介绍如何配置个人的户信息:
$ git config --global user.name "Allen Iverson" $ git config --global user.email iverson@76ers.com
这两条指令分别用于配置个人的用户名以及电子邮箱地址。另外,如果需要查阅现有的配置信息可以使用下面的命令:
$ git config --list user.name=Scott Chacon user.email=schacon@gmail.com color.status=auto color.branch=auto color.interactive=auto color.diff=auto ...
2.初始化新仓库
要对现有的某个项目开始用 Git 管理,只需到此项目所在的目录,执行:
$ git init
3.检出仓库
执行如下命令以创建一个本地仓库的克隆版本:
$ git clone /path/to/repository
如果是远端服务器上的仓库,你的命令会是这个样子:
$ git clone git://github.com/schacon/grit.git
或者:
$ git clone username@host:/path/to/respository
4.检查文件状态
要确定哪些文件当前处于什么状态,可以使用git status命令:
$ git status # On branch master nothing to commit (working directory clean)
5.跟踪与添加文件
如果用户新创建一个文件,想把该文件也加入到版本控制之中去,首先需要对该文件进行跟踪,这时需要使用git add命令:
$ git add README
此时再运行git status命令,会看到README文件已被跟踪,并处于暂存状态:
$ git status # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # new file: README #
如果我们修改之前已跟踪的文件,修改完之后已跟踪文件的内容就发生了改变,但是却还没有放入暂存区内。这时我们要暂存这次更新,也需要运行git add命令:
$ git add followed.c.c[/code]
$ git status # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # new file: README # modified: followed
6.忽略某些文件
通常有一些自动生成的文件无需纳入Git管理中来,我们可以创建一个名为.gitignore的文件,列出要忽略的文件模式,例如:
$ cat .gitignore *.[oa] *~
7.查看具体更新
git status命令的显示比较简单,如果要查看具体修改了哪些地方可以使用git
diff命令。比较工作目录中当前文件和暂存区域文件快照之间的差异,可以直接输入git diff命令:
$ git diff diff --git a/benchmarks.rb b/benchmarks.rb index 3cb747f..da65585 100644 --- a/benchmarks.rb +++ b/benchmarks.rb @@ -36,6 +36,10 @@ def main @commit.parents[0].parents[0].parents[0] end + run_code(x, 'commits 1') do + git.commits.size + end + run_code(x, 'commits 2') do log = git.commits('master', 15) log.size
若要看已经暂存起来的文件和上次提交时的快照之间的差异,可以使用git diff --cached命令,或者git
diff --staged命令:
$ git diff --cached diff --git a/README b/README new file mode 100644 index 0000000..03902a1 --- /dev/null +++ b/README2 @@ -0,0 +1,5 @@ +grit + by Tom Preston-Werner, Chris Wanstrath + http://github.com/mojombo/grit + +Grit is a Ruby library for extracting information from a Git repository
8.提交更新
这里介绍一下Git工作流的概念,本地仓库是由git维护的三棵树组成的。第一个是你的“工作目录”,它持有实际文件;第二个是“缓存区”(我们之前提及的暂存区域),它用来临时保存你的改动;最后是“HEAD”,指向你最后一次提交后的结果。
改动后的文件运行git add命令添加到缓存区后,便可使用以下命令提交更新:
$ git commit -m "代码提交信息"
此时,你的更新已经提交到了HEAD,但还没到你的远端仓库。
9.查看提交历史
想回顾提交历史,可以使用git log命令:
$ git log
我们常用-p选项展开显示每次提交的内容差异:
$ git log -p
10.推送改动
已经提交了的改动可以执行git push [remote-name] [branch-name]命令推送至远端仓库:
$ git push origin master
11.分支操作
使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。比如创建一个testing分支,运行git
branch命令:
$ git branch testing
要切换到其他分支,可以执行git
checkout 命令。我们现在转换到新建的 testing 分支:
$ git checkout testing
要新建并切换到某一分支,运行git checkout并加上-b参数:
$ git checkout -b iss53 Switched to a new branch "iss53"
删除分支:
$ git branch -d testing
除非你将分支推送到远端仓库,不然该分支是不为他人所见的:
$ git push origin <branch>
12.更新与合并
要更新你的本地仓库至最新改动,执行git
pull以在你的工作目录中获取并合并远端的改动。要合并其他分支到你的当前分支,执行:
$ git merge <branch>
两种情况下,git 都会尝试去自动合并改动。不幸的是,自动合并并非次次都能成功,并可能导致冲突。这时候就需要你修改这些文件来人肉合并这些冲突了,改完之后,你需要执行如下命令以将它们标记为合并成功:
$ git add <filename>
在合并改动之前,也可以使用如下命令查看:
$ git diff <source_branch> <target_branch>