Git文件操作(二)

有关git版本管理的介绍,参考https://blog.csdn.net/cymy001/article/details/81262819

git add <file>:告诉Git,把“文件”添加到“仓库”

git commit -m <file>:告诉Git,把“文件”提交到“仓库”

git status:查看仓库当前的状态【修改信息】

YYwhdeMacBook-Pro:GITWORKSPACE yywh$ touch readme.txt
YYwhdeMacBook-Pro:GITWORKSPACE yywh$ git add readme.txt   #将文件从工作区加到暂存区 
YYwhdeMacBook-Pro:GITWORKSPACE yywh$ git commit -m "+ one flie"   #将暂存区文件加到分支
[master (root-commit) 59dcbd5] + one flie
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 readme.txt
YYwhdeMacBook-Pro:GITWORKSPACE yywh$ git status   #查看版本库/仓库当前状态
On branch master
nothing to commit, working tree clean

Git比其他版本控制系统设计得优秀,因为Git跟踪并管理的是修改,而非文件。

如何提交多次修改?

(1)git add -> 第一次修改,然后git commitgit add -> 第二次修改,然后git commit

(2)git add -> 第一次修改,再git add -> 第二次修改最后一起git commit,就相当于把两次修改合并后一块提交了。

git diff <file>:查看文件修改前后差异,显示的格式是Unix通用的diff格式

YYwhdeMacBook-Pro:GITWORKSPACE yywh$ cat readme.txt 
YYwhdeMacBook-Pro:GITWORKSPACE yywh$ vim readme.txt 
YYwhdeMacBook-Pro:GITWORKSPACE yywh$ cat readme.txt 
git maybe better than svn
I just want to try another version management

YYwecashdeMacBook-Pro:GITWORKSPACE yywecash$ git add readme.txt 
YYwecashdeMacBook-Pro:GITWORKSPACE yywecash$ git commit -m "modify readme.txt"
[master c8c2c16] modify readme.txt
 1 file changed, 2 insertions(+)
YYwecashdeMacBook-Pro:GITWORKSPACE yywecash$ git status
On branch master
nothing to commit, working tree clean

YYwhdeMacBook-Pro:GITWORKSPACE yywh$ git diff readme.txt   #查看工作区文件修改前后差异
diff --git a/readme.txt b/readme.txt
index e69de29..85487de 100644
--- a/readme.txt
+++ b/readme.txt
@@ -0,0 +1,2 @@
+git maybe better than svn
+I just want to try another version management

git log:显示从最近到最远的提交日志

git log –pretty=oneline:显示简版提交日志

YYwhdeMacBook-Pro:GITWORKSPACE yywh$ git log   #显示全部提交日志记录
commit c8c2c16de9f8065a4f2945db947bef39d23a024e (HEAD -> master)
Author: Yu Yg <898486@qq.com>
Date:   Sat Jul 28 23:07:16 2018 +0800

    modify readme.txt

commit 59dcbd5dd97eb47518942b3b97bdb4f3ebd08447
Author: Yu Yg <898486@qq.com>
Date:   Sat Jul 28 22:02:35 2018 +0800

    + one flie

YYwhdeMacBook-Pro:GITWORKSPACE yywh$ git log --pretty=oneline   #显示简版提交记录
c8c2c16de9f8065a4f2945db947bef39d23a024e (HEAD -> master) modify readme.txt
59dcbd5dd97eb47518942b3b97bdb4f3ebd08447 + one flie

git reset –hard HEAD^:版本回退

git reset –hard [+commitid]:找回刚被删掉的提交id是commitid的版本

上一个版本是HEAD^,上上一个版本是HEAD^^,当然往上100个版本是HEAD~100。Git在回退版本时,其内部有个指向当前版本的HEAD指针。

YYwhdeMacBook-Pro:GITWORKSPACE yywh$ git reset --hard HEAD^   #回退版本
HEAD is now at 59dcbd5 + one flie
YYwhdeMacBook-Pro:GITWORKSPACE yywh$ git log --pretty=oneline
59dcbd5dd97eb47518942b3b97bdb4f3ebd08447 (HEAD -> master) + one flie

YYwhdeMacBook-Pro:GITWORKSPACE yywh$ git reset --hard c8c2c16   #找回回退版本
HEAD is now at c8c2c16 modify readme.txt
YYwhdeMacBook-Pro:GITWORKSPACE yywh$ git log --pretty=oneline
c8c2c16de9f8065a4f2945db947bef39d23a024e (HEAD -> master) modify readme.txt
59dcbd5dd97eb47518942b3b97bdb4f3ebd08447 + one flie

git reflog:记录每一次命令

YYwhdeMacBook-Pro:GITWORKSPACE yywh$ git reflog   #
c8c2c16 (HEAD -> master) HEAD@{0}: reset: moving to c8c2c16
59dcbd5 HEAD@{1}: reset: moving to HEAD^
c8c2c16 (HEAD -> master) HEAD@{2}: commit: modify readme.txt
59dcbd5 HEAD@{3}: commit (initial): + one flie

git diff HEAD -- readme.txt:查看工作区和版本库里面最新版本的区别

YYwhdeMacBook-Pro:GITWORKSPACE yywh$ cat readme.txt 
git maybe better than svn
I just want to try another version management

YYwhdeMacBook-Pro:GITWORKSPACE yywh$ vim readme.txt 
YYwhdeMacBook-Pro:GITWORKSPACE yywh$ cat readme.txt
git maybe better than svn
I just want to try another version management
I just want to tey the diff function of git!!!

YYwhdeMacBook-Pro:GITWORKSPACE yywh$ git diff HEAD -- readme.txt   #查看工作区和版本库的文件差异
diff --git a/readme.txt b/readme.txt
index 85487de..f95a964 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,2 +1,3 @@
 git maybe better than svn
 I just want to try another version management
+I just want to tey the diff function of git!!!

git checkout -- <file>:文件没添加暂存区,在工作区修改错了,撤回修改

git reset HEAD <flie>+git checkout -- <file>:工作区修改错,然后将错的添加到暂存区,撤回修改

YYwhdeMacBook-Pro:GITWORKSPACE yywh$ touch testwrong.txt
YYwhdeMacBook-Pro:GITWORKSPACE yywh$ ls
readme.txt	testwrong.txt
YYwhdeMacBook-Pro:GITWORKSPACE yywh$ cat testwrong.txt 
YYwhdeMacBook-Pro:GITWORKSPACE yywh$ vim testwrong.txt 
YYwhdeMacBook-Pro:GITWORKSPACE yywh$ cat testwrong.txt 
git may be stupid,haha...
YYwhdeMacBook-Pro:GITWORKSPACE yywh$ git add testwrong.txt 
YYwhdeMacBook-Pro:GITWORKSPACE yywh$ git commit -m "+wrong example"   #将文件提交到版本库
[master 981b076] +wrong example
 1 file changed, 1 insertion(+)
 create mode 100644 testwrong.txt
YYwhdeMacBook-Pro:GITWORKSPACE yywh$ vim testwrong.txt   #工作区修改文件
YYwhdeMacBook-Pro:GITWORKSPACE yywh$ cat testwrong.txt 
git may be stupid,haha...
Is git really better than svn?
YYwhdeMacBook-Pro:GITWORKSPACE yywh$ git diff HEAD -- testwrong.txt 
diff --git a/testwrong.txt b/testwrong.txt
index 29c3afa..4798cf4 100644
--- a/testwrong.txt
+++ b/testwrong.txt
@@ -1 +1,2 @@
 git may be stupid,haha...
+Is git really better than svn?
YYwhdeMacBook-Pro:GITWORKSPACE yywh$ git checkout -- testwrong.txt   #撤销工作区修改 
YYwhdeMacBook-Pro:GITWORKSPACE yywh$ git diff HEAD -- testwrong.txt 
YYwhdeMacBook-Pro:GITWORKSPACE yywh$ touch testwrong.txt
YYwhdeMacBook-Pro:GITWORKSPACE yywh$ vim testwrong.txt
YYwhdeMacBook-Pro:GITWORKSPACE yywh$ cat testwrong.txt 
git may be stupid,haha...
YYwhdeMacBook-Pro:GITWORKSPACE yywh$ git add testwrong.txt 
YYwhdeMacBook-Pro:GITWORKSPACE yywh$ git commit -m "+wrong example"
[master 981b076] +wrong example
 1 file changed, 1 insertion(+)
 create mode 100644 testwrong.txt

YYwhdeMacBook-Pro:GITWORKSPACE yywh$ vim testwrong.txt 
YYwhdeMacBook-Pro:GITWORKSPACE yywh$ cat testwrong.txt 
git may be stupid,haha...
a wrong change add to temporary area
YYwhdeMacBook-Pro:GITWORKSPACE yywh$ git add testwrong.txt   #将修改提交到暂存区
YYwhdeMacBook-Pro:GITWORKSPACE yywh$ git diff HEAD -- testwrong.txt
diff --git a/testwrong.txt b/testwrong.txt
index 29c3afa..29b546a 100644
--- a/testwrong.txt
+++ b/testwrong.txt
@@ -1 +1,2 @@
 git may be stupid,haha...
+a wrong change add to temporary area

YYwhdeMacBook-Pro:GITWORKSPACE yywh$ git reset HEAD testwrong.txt   #丢弃提交到暂存区的修改,退回到工作区 
Unstaged changes after reset:
M	readme.txt
M	testwrong.txt
YYwhdeMacBook-Pro:GITWORKSPACE yywh$ git checkout -- testwrong.txt   #将工作区修改丢弃 
YYwhdeMacBook-Pro:GITWORKSPACE yywh$ git diff HEAD -- testwrong.txt

git checkout <file>:用“版本库里的版本”替换“工作区的版本”,无论工作区是修改还是删除,都可以“一键还原”

git rm <file>:将文件从版本库中删除

YYwhdeMacBook-Pro:GITWORKSPACE yywh$ ls
readme.txt	testwrong.txt
YYwhdeMacBook-Pro:GITWORKSPACE yywh$ rm testwrong.txt 
YYwhdeMacBook-Pro:GITWORKSPACE yywh$ ls
readme.txt
YYwhdeMacBook-Pro:GITWORKSPACE yywh$ git checkout testwrong.txt   #用版本库恢复本地删除的文件
YYwhdeMacBook-Pro:GITWORKSPACE yywh$ ls
readme.txt	testwrong.txt

YYwhdeMacBook-Pro:GITWORKSPACE yywh$ git rm testwrong.txt   #删除版本库里的文件 
rm 'testwrong.txt'
YYwhdeMacBook-Pro:GITWORKSPACE yywh$ ls
readme.txt

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值