Git

Git版本库管理

2019-05-17  本文已影响0人  王勇1024

新建本地仓库

$ mkdir test
$ cd test/
$ git init
已初始化空的 Git 仓库于 /Users/admin/git/test/.git/

执行git init命令后,Git 会在当前目录下创建一个隐藏的.git目录,Git 把所有修订信息都放在这唯一的顶层.git目录里。

将文件添加到版本库中

首先创建一个 HelloGit.txt 文件,内容为“Hello Git",将该文件加入到 Git 版本库中:

git add HelloGit.txt

此时,Git 还只是暂存(staged)了这个文件,这是提交之前的中间步骤。之所以将 add 和 commit 分开,是为了防止频繁的文件修改导致版本库发生频繁变更。

查看版本库状态

可以通过git status命令查看版本库的当前状态

$ git status
位于分支 master

尚无提交

要提交的变更:
  (使用 "git rm --cached <文件>..." 以取消暂存)

    新文件:   HelloGit.txt

提交

可以通过git commit命令将变更提交到版本库中,提交时必须指定日志信息和作者:

$ git commit -m "Initial git repostory" --author="Wang Yong <wangyong@example.com>"
[master(根提交) b7357c7] Initial git repostory
 1 file changed, 1 insertion(+)
 create mode 100644 HelloGit.txt

再次查看 Git 状态:

$ git status
位于分支 master
无文件要提交,干净的工作区

配置提交作者

在对版本库做多次提交之前,应该建立一些基本环境和配置选项。最基本的是,Git 必须知道你的名字和email地址。

git config user.name "John Doe"
git config user.email "john.doe@example.com"

也可以使用 GIT_AUTHOR_NAMEGIT_AUTHOR_EMAIL 环境变量告诉 Git 你的姓名和 email 地址。

查看提交记录

可以通过git log命令查看提交记录:

$ git log
commit b7357c798f5f17cb9ea308592ff6c3fe3609cc39 (HEAD -> master)
Author: Wang Yong <wangyong@example.com>
Date:   Fri May 17 22:17:05 2019 +0800

    Initial git repostory

如果想查看特定提交的更加详细的信息,可以通过 git show命令带一个提交码。

$ git show
commit b7357c798f5f17cb9ea308592ff6c3fe3609cc39 (HEAD -> master)
Author: Wang Yong <wangyong@example.com>
Date:   Fri May 17 22:17:05 2019 +0800

    Initial git repostory

diff --git a/HelloGit.txt b/HelloGit.txt
new file mode 100644
index 0000000..9f4d96d
--- /dev/null
+++ b/HelloGit.txt
@@ -0,0 +1 @@
+Hello Git

另一种查看方式是使用show-branch,提供当前开发分支简介的单行摘要。

$ git show-branch --more=10
[master] Add test2.txt
[master^] Add test.txt
[master~2] Initial git repostory

参数--more表示额外10个版本,但因为只有3个版本,所以只显示了三行。如果不指定--more,则只显示最近一次提交。

查看提交差异

可以通过git diff加两次提交的ID来查看两次提交的差别。

$ git diff 604b07583a158dae76c2b1370dc65a715fd8f8bd cda17dd8c0b05abfcc2fa6ba5d5998cb6260b9b7
diff --git a/test2.txt b/test2.txt
deleted file mode 100644
index a42051c..0000000
--- a/test2.txt
+++ /dev/null
@@ -1 +0,0 @@
-I Love China!

删除和重命名

删除test2.txt文件:

$ git rm test2.txt
rm 'test2.txt'

$ git commit -m "Remove test2.txt"
[master 36cdfac] Remove test2.txt
 1 file changed, 1 deletion(-)
 delete mode 100644 test2.txt

将test.txt重命名为test3.txt:

$ git mv test.txt test3.txt

$ git commit -m "Move test.txt to test3.txt"
[master a51db3a] Move test.txt to test3.txt
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename test.txt => test3.txt (100%)

clone版本库

如果已经存在一个初始版本库,就可以通过git clone命令创建一个完整的副本。

$ git clone test test_replica
正克隆到 'test_replica'...
完成。

一旦复制了一个版本库,就可以修改这个复制版本、做出新的提交、查看它的日志和历史等。这是一个有着完善历史版本的版本库。
对复制版本库的修改不会影响到原来的版本库

上一篇下一篇

猜你喜欢

热点阅读