码迷,mamicode.com
首页 > 其他好文 > 详细

GIT的学习

时间:2019-07-09 13:50:53      阅读:93      评论:0      收藏:0      [点我收藏+]

标签:key   标记   文件   文件名   工作   文件恢复   理解   ash   fir   

早已听说gayhub。我们就抽下零碎的时间来学习下。

 

GIT是在官网下的一个windows版本。一切默认安装。用bash的exe打开即可。

 

1.基础环境的搭建。

 

$ git config --global user.name "Recurison"
$ git config --global user.email "sknoendideal@163.com"

自己理解的意思是标记了本地环境的名字。

 

$ mkdir learngit         ##新建个文件夹以作为版本仓
$ cd learngit/            
$ git init                 ## 初始化版本仓
$ ls -ah                   ##会有个.git的隐藏文件

2.基本使用

新建个readme.txt文件,用notepad++编辑。最好不要用windows自带的记事本编辑。

内容:

这是一个中文乱码文件
乱码不乱

文件自然在 learngit/下

命令:

第一次提交:

$ git add hehe.txt           ##文件添加至仓库;不会有任何输出
$ git commit -m "first 1"     ##-m带上本次提交的描述,最好是有意义的。

[master 69100b0] first 1    
1 file changed, 2 insertions(+) ##提示了一个文件修改,两条插入。
create mode 100644 hehe.txt

添加文件到Git仓库,分两步:

  1. 使用命令git add <file>,注意,可反复多次使用,添加多个文件;
  2. 使用命令git commit -m <message>,完成。

修改后第二次提交:

内容:

这是一个中文乱码文件
乱码乱

命令:

$ 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:   hehe.txt

no changes added to commit (use "git add" and/or "git commit -a")

 $ git diff        ##可以看到变化的地方,显示的跟linux下diff一样。
 diff --git a/hehe.txt b/hehe.txt
 index 2f49f4a..6d502c0 100644
 --- a/hehe.txt
 +++ b/hehe.txt
 @@ -1,2 +1,2 @@
 这是一个中文乱码文件
 -乱码不乱
 \ No newline at end of file
 +乱码乱

然后提交:

$ git add hehe.txt
$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        modified:   hehe.txt

 $ git commit -m "second time"
 [master 789bcd3] second time
 1 file changed, 1 insertion(+), 1 deletion(-)

3.版本恢复

恢复到历史版本可通过commit_id来恢复。

比如可以通过:git log 或者git reflog查看到commit_id

$ git log
commit 789bcd3efbe0176b5ea4f10f7fbe2bcc042e4df0 (HEAD -> master)
Author: Recurison <sknoendideal@163.com>
Date:   Fri Dec 7 13:49:07 2018 +0800

    second time

commit 69100b0fa5d4a487363e4e1606121b7c22e20429
Author: Recurison <sknoendideal@163.com>
Date:   Fri Dec 7 13:33:17 2018 +0800

    first 1

上图显示。HEAD为当前版本。如果要恢复到"first 1"版本的话,使用:

  $ git reset --hard HEAD^
  HEAD is now at 69100b0 first 1

其中^为上个版本,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。

也可以用git reset -- hard commit_id 来回退版本。

$ git reset -- hard a16a5704b0fdb568507668d7d16218c9026df3bc

4.常见命令


1)如果本地及版本库都删除了test.txt这个文件,可以通过git reflog查到次文件版本,然后通过git checkout id号 文件名。来恢复文件

git checkout a16a5704b0fdb568507668d7d16218c9026df3bc test.txt        

2)撤销修改

命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:

一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

总之,就是让这个文件回到最近一次git commitgit add时的状态。

$ git checkout -- readme.txt

如果文件在占存区但没有commit,可用命令git reset HEAD <file>可以把暂存区的修改撤销掉(unstage),重新放回工作区

$ git reset HEAD readme.txt

3)删除文件

删除本地文件rm test.txt

删除版本库文件那就用命令git rm 文件名 删掉,并且git commit

 

$ git rm test.txt
rm test.txt

$ git commit -m "remove test.txt"
[master d46f35e] remove test.txt
 1 file changed, 1 deletion(-)
 delete mode 100644 test.txt

如果删错了,但版本库还有,所以可以很轻松地把误删的文件恢复到最新版本

 git checkout -- test.txt

版本库没有的话,也可以用上面4.1)的方法来恢复文件。

 







GIT的学习

标签:key   标记   文件   文件名   工作   文件恢复   理解   ash   fir   

原文地址:https://www.cnblogs.com/recurision/p/10082540.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!