Git的操作

Git的操作

Git是很好用的项目管理工具,记录下它的常用操作。

一、创建仓库

  1. 选择一个空目录(不要包含中文)
  2. 通过git init命令把它变为仓库:
    1
    2
    3
    $ git init

    Initialized empty Git repository in /Users/michael/learngit/.git/
    提示: 不要用记事本编辑.txt(Windows会在首位加上一串0xefbbbf(十六进制)的字符)

Git仅支持纯文本文档(文本文档、程序代码等的改动控制,不支持图片视频以及word文档。)

二、添加文件

在该目录下或子目录下新建文件readme.txt,输入一些字符。

执行添加文件命令:git add

1
$ git add readme.txt

没有错误提示,即为成功。
然后是提交到仓库:git commit -m" "

1
2
3
4
5
$ git commit -m "wrote a readme file"

[master (root-commit) eaadf4e] wrote a readme file
1 file changed, 2 insertions(+)
create mode 100644 readme.txt

-m 后为本次提交的说明,可以为任何字符。
提示一个文件修改,添加了一行。

三、版本回滚

git status可以用来查看工作区状态,当前状态下有哪些文件是有修改的、没有提交的。

git diff <file>可以用来查看修改文件有何不同

1
$ git status<br/>
1
$ git diff readme.txt 

添加过的文件修改后直接git commit即可。

查看提交日志git log

1
2
3
4
5
6
7
8
9
10
11
12
$ git log
commit e09483d6b5d75a3d5f848eeb708a36e61cd4307c (HEAD -> master)
Author: xywang <xywang99@outlook.com>
Date: Sat Nov 3 16:54:05 2018 +0800

new add test

commit 4078d72ac69eb23969e77e579a85ee988d1a62ea
Author: xywang <xywang99@outlook.com>
Date: Sat Nov 3 16:05:09 2018 +0800

the first file

其中commit后为版本号(自动生成的),并附有提交者、日期、描述信息。
只查看版本号与描述信息:加上--pretty=oneline参数
查看历史所有命令日志:git reflog

回退到上一个版本:

HEAD为当前版本,前一版本为HEAD^,前一百版本为HEAD~100
使用git reset命令:

1
2
$ git reset --hard HEAD^
HEAD is now at 4078d72 the first file

这样就回到了上一个版本。

返回未来版本:

回到上一版本后,想要恢复之前的版本,则可以继续通过git reset --hard命令,不过需要把hard后的HEAD^换为版本号(通常只要输入版本号的前几位即可。)

如:

1
2
$ git reset --hard e094
HEAD is now at e09483d new add test

忘记版本号可以用git reflog查看。

四、管理修改

当修改过一个文件后,使用git add将其放入暂存区。再次修改后,使用git commit提交,发现提交的会是第一次修改的文件。这是因为提交的是暂存区的修改。
想要撤销修改时,用git status,会发现他会告诉你如何撤销:

工作区的修改: git checkout -- test.txt让文件回到最后一次commit或add。

暂存区的修改: 执行命令git reset HEAD test.txt

让暂存区的修改退回到工作区。

删除文件

在文件夹中删除文件后,在仓库中的删除需要以下命令:
git rm test.txt

如果删错了,使用git checkout --test.txt用版本库里的文件替换工作区文件。
但只能恢复到最后一次提交的状态。

总结:

  1. 在目录下使用git init初始化,建立仓库,生成.git文件夹
  2. 创建多个文件,使用git add <file>将工作区的文件一个个添加到缓存区
  3. 使用git commit将缓存区的文件提交
  4. git status查看当前状态,git diff <file>查看某一文件与仓库有何区别。
  5. git log查看历史修改记录,git reflog查看历史命令。
  6. HEAD 为仓库中指向当前版本的指针,git reset --hard HEAD^返回上一个版本,git reset --hard HEAD~100返回上一百个版本,git reset --hard XXX重置为版本号为XXX的版本(无论是在此之前还是之后)
  7. git checkout --<file>让某文件回到上次add或commit状态。(发生修改和删除后),git rm <file>在仓库中删去文件。