git的安装与常用操作
1.安装
命令:sudo apt-get install git (Ubuntu)
命令:git --version查看是否安装成功/查看git的版本
2.常用操作
<1>通知git用户
git config --global user.name "sunhs"git config --global user.email 'sunhs@m15.cn'可以通过一下命令查看上面的设置是否成功:git config --global --list
<2>设置不同颜色显示git命令
git config --global color.ui "auto"/git config --global color.ui "always"
<3>创建版本库
mkdir testcd testgit init
<3>修改代码
新建一个文件index.html,输入内容,然后执行以下操作git add index.html将文件添加到版本库的索引中git commit -m "add in hello word HTML"提交 -m表示提交的留言,后面的内容就是留言的内容结果:[master (root-commit) 1cb852a] add in hello HTML1 file changed, 7 insertions(+)create mode 100644 index.htmlgit log查看提交相关的信息结果:commit 1cb852adff0c03e6118894ec57f2b7c721886d3agit的名称(git自动生成的SHA-1码)在git提交后只显示前7位Author: sunhs <sunhs@m15.cn>Date: Fri Jul 19 14:35:43 2013 +0800add in hello HTMLgit log -p即显示每次commit的日志,又会显示每次commit代码的更改<4>项目中工作修改index.html,修改完成之后git会自动检测出该文件已经被修改git status显示工作目录树的状态(当前视图状态)结果:# On branch master# Changes not staged for commit:# (use "git add <file>..." to update what will be committed)# (use "git checkout -- <file>..." to discard changes in working directory)## modified: index.html#no changes added to commit (use "git add" and/or "git commit -a")表明已经更改但是没有暂存git add index.htmlgit status结果:# On branch master# Changes to be committed:# (use "git reset HEAD <file>..." to unstage)## modified: index.html#然后进行提交:git commit -m "add <head> and <title> to index" \-m "This allows for a more semantic document" git的每次提交可以加入多个留言,每个留言另起一行,-m开头git log命令可以快速的查看到留言的内容,通过参数-1可以限定输入的提交条目的个数git log -1commit 118901f00feb8eb7619b7a90b8c5c3c629fcbfd6Author: sunhs <sunhs@m15.cn>Date: Fri Jul 19 14:58:13 2013 +0800add in index
3.分支(branch)
分支可以为要发布的代码保留一份拷贝,所以无需停止正在进行的开发
<1>创建分支
git branch RB_1.0 master创建分支命令为git branch需要两个参数,新分支名称和父分支名称
<2>检查分支
git checkout RB_1.0
<3>打标签
git tag 1.0 RB_1.0git tab 标签名打要标签的点git tag查看版本库中的标签列表
<4>变基
git rebase RB_1.0变基命令:把一条分支上的修改在另一条分支的末稍重现
<5>删除分支
git brache -d RN_1.0
4.归档
git archive --format=tar \
--prefix=mysite-1.0/ 1.0 \
| gzip > mysite-1.0.tar.gz
git archive --format=zip \
--prefix=mysite-1.0/ 1.0 \
|mysite-1.0.zip
5.远程克隆版本库
git clone git://github.com/tswicegood/mysite.git mysite-remote
git clone 远程版本库的位置 存放该版本库的本地目录
6.添加文件到暂存区
暂存区的变更(stage change):工作目录树中那些打算提交到版本库的变更,暂存操作将会更新Git内部的索引
暂存区(staging):上面说到的索引常被称为暂存区
git add -i使用参数i会启动交互命令提示符,在这中方式下可以交互暂存新文件
git add -i
结果:
staged unstaged path
*** Commands ***
1: status 2: update 3: revert 4: add untracked
5: patch 6: diff 7: quit 8: help
What now>
共有1-9可供选择操作。
git add -p进入补丁模式
结果:
diff --git a/index.html b/index.html
index e812d0a..a65d25d 100644
--- a/index.html
+++ b/index.html
@@ -6,7 +6,7 @@
<body>
<h1>Hello World!</h1>
<ul>
- <li><a href="bio.html">Biography</a></li>
+ <li><a href="bio.html">Biography:dsdsdsdsdsd</a></li>
</ul>
</body>
</html>
Stage this hunk [y,n,q,a,d,/,e,?]?
输入y选择文件块,然后该文件就处于暂存状态并准备提交
7.提交修改
对于提交命令git commit -m "the message"仅仅适合简短的留言,如果留言比较复杂,可以使用命令git commit来打 开编辑器来提交留言,提交的留言在编辑器中#表示注释
第一种提交方式:
git add filegit commit -m "message"
第二种提交方式:
git commit -m "message" -a
第三种提交方式:
git commit -m "message" file指定需要提交的文件名
当要用命令git add -p提交文件的一部份修改时,用先暂存后提交的方法比较合适,如果修改了多个文件时且需要提交其中的一个时,最好用第三种提交方式。
8.git别名
git config --global alias.ci "commit" 将命令git commit简化成git ci
9.查看修改的内容
git diff可以显示出工作目录数,暂存区及版本库之间的差异。
修改index.html文件,后执行git diff命令
结果:
diff --git a/index.html b/index.html
index a65d25d..9a7369d 100644
--- a/index.html
+++ b/index.html
@@ -1,4 +1,4 @@
-<html>此行显示红色(-号表示被删掉啦)
+shtml>次行显示绿色(+号表示新增加的)
<head>
<title>Hello World in Git</title>
<meta name="description" content="hello world in Git" />
注意:git diff命令不加任何的参数比较的是工作目录树与暂存区之间的区别
git diff --cached比较暂存区和版本库中的区别
结果:
diff --git a/index.html b/index.html
index e812d0a..a65d25d 100644
--- a/index.html
+++ b/index.html
@@ -6,7 +6,7 @@
<body>
<h1>Hello World!</h1>
<ul>
- <li><a href="bio.html">Biography</a></li>(该行红色)
+ <li><a href="bio.html">Biography:dsdsdsdsdsd</a></li>(该行绿色)
</ul>
</body>
</html>
git diff HEAD 比较工作目录树(包括暂存和未暂存的修改)与版本库的差别
结果:
diff --git a/index.html b/index.html
index e812d0a..9a7369d 100644
--- a/index.html
+++ b/index.html
@@ -1,4 +1,4 @@
-<html>(该行红色)
+shtml>(该行绿色)
<head>
<title>Hello World in Git</title>
<meta name="description" content="hello world in Git" />
@@ -6,7 +6,7 @@
<body>
<h1>Hello World!</h1>
<ul>
- <li><a href="bio.html">Biography</a></li>(该行红色)
+ <li><a href="bio.html">Biography:dsdsdsdsdsd</a></li>(该行绿色)
</ul>
</body>
</html>
10.管理文件
<1>文件的重命名
git mv <原文件名称> <新文件名称>重命名文件git mv index.html hello.html该命令告诉Git以原来的文件内容去创建新的文件,然后删除原来的文件,新文件中保留原文件的历史修改记录
<2>文件复制
<3>忽略文件
使用文本编译器可能对文本编译后产生.swp文件,这种文件是我们不希望上传到git上的,所以我们将这种文件统一上传到git的.gitignore中也就是文件.*.swp上传到.gitignore中去