您的位置:首页 > 其它

快速掌握Git的常用指令

2013-09-15 14:59 169 查看
1.配置用户信息

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
$ git status # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # new file: README # modified: followed
.c[/code]
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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: