git的安装以及常用操作

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 '[email protected]'
可以通过一下命令查看上面的设置是否成功:
git config --global --list
<2>设置不同颜色显示git命令
git config --global color.ui "auto"/git config --global color.ui "always"
<3>创建版本库
mkdir test
cd test
git init
<3>修改代码
新建一个文件index.html,输入内容,然后执行以下操作
git add index.html将文件添加到版本库的索引中
git commit -m "add in hello word HTML"提交  -m表示提交的留言,后面的内容就是留言的内容
结果:
[master (root-commit) 1cb852a] add in hello HTML
1 file changed, 7 insertions(+)
 create mode 100644 index.html
git log查看提交相关的信息
结果:
commit 1cb852adff0c03e6118894ec57f2b7c721886d3agit的名称(git自动生成的SHA-1码)在git提交后只显示前7位
Author: sunhs <[email protected]>
Date:   Fri Jul 19 14:35:43 2013 +0800
    add in hello HTML
git 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.html
git 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 -1
commit 118901f00feb8eb7619b7a90b8c5c3c629fcbfd6
Author: sunhs <[email protected]>
Date:   Fri Jul 19 14:58:13 2013 +0800
    add 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 file
git 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中去

猜你喜欢

转载自oaksun.iteye.com/blog/1941750
今日推荐