优秀的编程知识分享平台

网站首页 > 技术文章 正文

代码管理-5-git额外操作(git 直接commit)

nanyue 2024-09-27 13:01:30 技术文章 7 ℃

git log

查看历史的git commit快照操作

[root@tyschool1 git_data]# git log
commit 326e57a3f87de546c8c17774f174192e280e36fc (HEAD -> master)
#哈希字符串的描述信息 HEAD->master表示当前工作目录所对应的commit,会随着新的commit变化(在个别版本中使用git log不会显示HEAD字样内容,需要使用git log --decorate)
Author: aaa <hello@localhost>
#作者
Date:   Mon Apr 6 01:00:27 2020 -0400
#时间

    v2 a    #git commit -m添加的描述信息

commit 8f01c62906ee7c06489aae7afb42adaa3da90fdc
Author: aaa <hello@localhost>
Date:   Mon Apr 6 00:43:55 2020 -0400

    version2 a

commit a714e37d98c3ab77cfa27f0d0a1ca773c6e4ce57
Author: aaa <hello@localhost>
Date:   Sun Apr 5 06:26:53 2020 -0400

    a

commit 47a267cc489a93f8fab100d7f945a15209f61240
Author: aaa <hello@localhost>
Date:   Sun Apr 5 06:25:51 2020 -0400

    a.txt

commit 6ac34be689eda430ffefc12114fde40759d536b0
Author: aaa <hello@localhost>
Date:   Sun Apr 5 06:21:02 2020 -0400

    a
[root@tyschool1 git_data]# git log --oneline    #简单的形式展示内容,只显示哈希标识符的前几位
326e57a (HEAD -> master) v2 a
8f01c62 version2 a
a714e37 a
47a267c a.txt
6ac34be a

############################
[root@tyschool1 git_data]# echo 123 >> a
[root@tyschool1 git_data]# git add a
[root@tyschool1 git_data]# git commit -m "test head"
[master 644d678] test head
 1 file changed, 1 insertion(+)
[root@tyschool1 git_data]# git log --oneline --decorate
644d678 (HEAD -> master) test head  #产生变化
326e57a v2 a
8f01c62 version2 a
a714e37 a
47a267c a.txt
6ac34be a

git log -p

[root@tyschool1 git_data]# git log -p   #显示具体变化的内容,调用了git diff
commit 644d6785e33714f8f21a3767e39e2013540e1ee2 (HEAD -> master)
Author: aaa <hello@localhost>
Date:   Mon Apr 6 01:12:02 2020 -0400

    test head

diff --git a/a b/a
index b989558..864e0ba 100644
--- a/a
+++ b/a
@@ -1,3 +1,4 @@
 hello
 test
 test1
+123


git log -n

[root@tyschool1 git_data]# git log -1   #只显示最近几条内容
commit 644d6785e33714f8f21a3767e39e2013540e1ee2 (HEAD -> master)
Author: aaa <hello@localhost>
Date:   Mon Apr 6 01:12:02 2020 -0400

    test head
[root@tyschool1 git_data]# git log -2
commit 644d6785e33714f8f21a3767e39e2013540e1ee2 (HEAD -> master)
Author: aaa <hello@localhost>
Date:   Mon Apr 6 01:12:02 2020 -0400

    test head

commit 326e57a3f87de546c8c17774f174192e280e36fc
Author: aaa <hello@localhost>
Date:   Mon Apr 6 01:00:27 2020 -0400

    v2 a


git checkout --

检出,重写工作区数据

[root@tyschool1 git_data]# echo haha >> a
[root@tyschool1 git_data]# cat a
hello
test
test1
123
haha
[root@tyschool1 git_data]# git status 
位于分支 master
尚未暂存以备提交的变更:
  (使用 "git add <文件>..." 更新要提交的内容)
  (使用 "git checkout -- <文件>..." 丢弃工作区的改动)

    修改:     a

修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
[root@tyschool1 git_data]# git  checkout -- a
[root@tyschool1 git_data]# git status 
位于分支 master
无文件要提交,干净的工作区
[root@tyschool1 git_data]# cat a
hello
test
test1
123

git reset HEAD

本地仓库覆盖暂存区域

[root@tyschool1 git_data]# echo "" > a  #将a的内容清空
[root@tyschool1 git_data]# git add a    #提交到暂存区
[root@tyschool1 git_data]# git commit -m "test head"    #提交到仓库
[master dd7925f] test head
 1 file changed, 1 insertion(+), 1 deletion(-)
[root@tyschool1 git_data]# echo haha > a    #添加内容到a
[root@tyschool1 git_data]# git add a    #提交到暂存区
[root@tyschool1 git_data]# git diff a   #确认没有差异
[root@tyschool1 git_data]# git reset HEAD a #用本地仓库的数据将暂存区数据覆盖
重置后取消暂存的变更:
M   a
[root@tyschool1 git_data]# git diff a   #比较工作区和暂存区的数据差异
diff --git a/a b/a
index 8b13789..5ad28e2 100644
--- a/a
+++ b/a
@@ -1 +1 @@
-
+haha

git commit -am

快速提交到本地仓库

[root@tyschool1 git_data]# cat a
haha
[root@tyschool1 git_data]# git diff
[root@tyschool1 git_data]# echo hello >> a
[root@tyschool1 git_data]# git diff
diff --git a/a b/a
index 5ad28e2..5c06d49 100644
--- a/a
+++ b/a
@@ -1 +1,2 @@
 haha
+hello
[root@tyschool1 git_data]# git status 
位于分支 master
尚未暂存以备提交的变更:
  (使用 "git add <文件>..." 更新要提交的内容)
  (使用 "git checkout -- <文件>..." 丢弃工作区的改动)

    修改:     a

修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
[root@tyschool1 git_data]# git add a
[root@tyschool1 git_data]# git commit -m "add hello"
[master 2add75e] add hello
 1 file changed, 1 insertion(+)
[root@tyschool1 git_data]# git diff
######在a文件中添加hello并提交到仓库
[root@tyschool1 git_data]# echo haha >> a
[root@tyschool1 git_data]# git commit -am "add haha"#也可以使用-am直接提交到仓库,相当于先git add再git commit -m,但必须是跟踪状态的文件,参数a必须在m前面,否则会报错,无法提交。
[master f3d6391] add haha
 1 file changed, 1 insertion(+)
[root@tyschool1 git_data]# git diff
[root@tyschool1 git_data]# git status 
位于分支 master
无文件要提交,干净的工作区
[root@tyschool1 git_data]# git log --oneline 
f3d6391 (HEAD -> master) add haha
2add75e add hello

总结

git log

git checkout

git reset HEAD

重点:git相关命令及作用

难点:记住相关命令的使用场景

3分钟了解计算机发展历史-组团学


最近发表
标签列表