写点什么

玩转 Git 就这么简单!这些常用命令你确定都用过吗?,java 多线程编程面试题

用户头像
极客good
关注
发布于: 刚刚

Git 常用命令:提交与修改


=================


git add


===========


添加文件到仓库


git add [file1] [file2] # 添加文件 file1 和 file2 进入暂存区


git add [dir] # 添加 dir 目录进入暂存区,包括子目录


git add . # 添加当前目录下所有文件到暂存区


$ touch README.md


$ git add README.md


git status


==============


查看在你上次提交之后是否有对文件进行再次修改。


$ git status


On branch master


No commits yet


Changes to be committed:


(use "git rm --cached <file>..." to unstage)


new file: README.md


通常使用-s 获得简短的输出结果。


$ git status -s


A README.md # A 表示新添加


git diff


============


比较文件在暂存区和工作区的差异,主要应用场景


git diff [file] # 尚未缓存的改动


git diff --chached [file] # 查看已缓存的改动


git diff --stat [file] #显示摘要而非整个 diff


前置条件:已经将 README.md 加入到暂存区。


vim README.md # 编辑 modified by summerday


$ git status -s


AM README.md


$ git diff # 显示暂存区和工作区的差异


diff --git a/README.md b/README.md


index e69de29..4dc8994 100644


--- a/README.md


+++ b/README.md


@@ -0,0 +1 @@


+modified by summerday!


$ git diff --cached README.md # 显示暂存区和上一次提交(commit)的差异


diff --git a/README.md b/README.md


new file mode 100644


index 0000000..e69de29


$ git diff --stat README.md #显示摘要而非整个 diff


README.md | 1 +


1 file changed, 1 insertion(+)


git commit


==============


将暂存区内容添加到本地仓库中。


git commit -m [message]


git commit [file1] [file2] -m [message]


git commit -am [message]


【一线大厂Java面试题解析+核心总结学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码

add + commit

git revert <commit> # 撤销指定的修改


$ git commit -m "first commit !"


[master (root-commit) b81d562] first commit !


1 file changed, 0 insertions(+), 0 deletions(-)


create mode 100644 README.md


$ git status


On branch master


nothing to commit, working tree clean


nothing to commit, working tree clean,表示我们在最近一次提交之后,没有做任何改动,是干净的工作目录。


可以使用-a 选项跳过 git add。


$ vim README.md # add : modified again!


$ git status


On branch master


Changes not staged for commit:


(use "git add <file>..." to update what will be committed)


(use "git restore <file>..." to discard changes in working directory)


modified: README.md


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


$ git commit -am "modify and commit again!"


[master 4c3121a] modify and commit again!


1 file changed, 1 insertion(+)


git reset


=============


回退版本,可以指定退回某一次提交的版本


git reset [--soft | --mixed | --hard] [HEAD]


--mixed?为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变


git reset [HEAD]


git reset --mixed [HEAD]


$ git reset HEAD # 取消之前 git add 添加到暂存区的内容


$ git reset HEAD^ # 回退所有内容到上一版本 git reset HEAD~1


$ git reset HEAD^ 1.txt # 回退 1.txt 文件的版本到上一版本


$ git reset [version] # 回退到指定版本


--soft,--mixed,--head 的区别可以对照:git reset soft,hard,mixed 之区别深解,总结如下:git reset 命令是用来将当前 branch 重置到另外一个 commit 的,而这个动作可能会将 index 以及 work tree 同样影响,而三个参数表示影响程度上的不同:



--soft:仅仅将头指针恢复,【已经 add 进暂存区的内容以及工作空间的所有东西都不变】。--mixed:将头指针恢复,已经 add 进暂存区的内容也会丢失,【工作空间的代码什么的是不变的,可以根据情况再次进行 add,commit 操作】。--hard:一切就全都恢复了,头指针恢复,已经 add 进暂存区的内容也会丢失,代码什么的也恢复到以前状态,所以该参数需谨慎使用。


HEAD 说明


==========


^表示数字表示含义 HEADHEAD~0 当前版本 HEAD^HEAD~1 上一版本 HEAD^^HEAD~2 上上个版本


git rm


==========


删除文件


git rm <file> # 从暂存区和工作区中删除文件


git rm -f <file> # 如果删除之前修改过,并已经放到暂存区中,需要强制删除


git rm -cached <file> # 把文件从暂存区移除,但仍然希望保留在当前工作目录中


git mv


==========


移动或重命名工作区文件


git mv [file] [newfile] # 移动或重命名一个文件、目录或软链接


git mv -f [file] [newfile] # 如果新文件名已经存在,强制使用-f


Git 常用命令:日志信息


================


git log


===========


查看历史提交记录


$ git log


commit bcc72cf028fa25cd8cebf7e310ebfe18d848d9e3 (HEAD -> master)


Author: xxx


Date: Mon Nov 30 14:40:24 2020 +0800


update


commit 272df45cb2357655f07576bc59bd92aac9c9fe96


Author: xxx


Date: Mon Nov 30 12:50:22 2020 +0800


first commit !


$ git log --oneline # 查看简洁版本


bcc72cf (HEAD -> master) update


272df45 first commit !


b81d562 first commit !


$ git log --graph # 显示拓扑图结构,显示何时工作分叉、又何时归并。


$ git log --reverse --oneline # 逆向显示


$ git log --author=summerday --oneline -5 # 查看最近 5 行作者为 summerday 的提交记录


$ git log --oneline --before={3.weeks.ago} --after={2010-04-18} --no-merges # 三周前且在四月十八日之后的所有提交 --no-merges 选项以隐藏合并提交


git blame


=============


查看文件的修改记录


$ git blame README.md


272df45c (huayuhao 2020-11-30 12:50:22 +0800 1) modified by summerday!


bcc72cf0 (huayuhao 2020-11-30 14:40:24 +0800 2)


bcc72cf0 (huayuhao 2020-11-30 14:40:24 +0800 3) reset test!


git show


============


显示信息


git show [version] # 显示某个提交的详细内容


git show HEAD # 显示 HEAD 提交日志


git show HEAD^ # 显示 HEAD 的父(上一个版本)的提交日志


Git 常用命令:远程操作


================


git remote

用户头像

极客good

关注

还未添加个人签名 2021.03.18 加入

还未添加个人简介

评论

发布
暂无评论
玩转Git就这么简单!这些常用命令你确定都用过吗?,java多线程编程面试题