赞
踩
刚入公司,任职 Java Web开发工程师。
之前也是收藏过其他人写的博客,尝试着自己写一写,养成写博客的习惯,就当是做笔记吧。
使用命令:
git reset --soft HEAD^
这样就成功撤销了 commit,如果想要连着 add 也撤销的话, --soft 改为 --hard(删除工作空间的改动代码)。
注:
HEAD^ 表示上一个版本,即上一次的 commit,也可以写成HEAD~1
如果进行两次的 commit,想要都撤回,可以使用HEAD~2
--soft
不删除工作空间的改动代码 ,撤销 commit,不撤销 git add file
--hard
删除工作空间的改动代码,撤销 commit 且撤销 add
git大全
https://www.cnblogs.com/syp172654682/p/7689328.html
https://mp.weixin.qq.com/s/Bf7uVhGiu47uOELjmC5uXQ
只从暂存区中删除,保留物理文件
git rm --cached <文件名>
不但从stage中删除,同时强制删除物理文件
git rm -f <文件名>
把 a.txt 改名为 b.txt
git mv a.txt b.txt
使用"git add"把更新提交到了暂存区。这时"git status"的输出中提示我们可以通过"git reset HEAD <文件名>…"把暂存区的更新移出到WorkSpace中
git reset HEAD <文件名> (同第一个)
git diff用于显示WorkSpace中的文件和暂存区文件的差异
用"git status"只能查看对哪些文件做了改动,如果要看改动了什么,可以用:
检出branch分支。要完成图中的三个步骤,更新HEAD以指向branch分支,以及用branch 指向的树更新暂存区和工作区。
$ git checkout branch
汇总显示工作区、暂存区与HEAD的差异。
$ git checkout
$ git checkout HEAD
用暂存区中filename文件来覆盖工作区中的filename文件。相当于取消自上次执行git add filename以来(如果执行过)的本地修改。
$ git checkout --filename
维持HEAD的指向不变。用 branch 所指向的提交中的 filename 替换暂存区和工作区中相应的文件。注意会将暂存区和工作区中的filename文件直接覆盖。
$ git checkout branch --filename
注意git checkout 命令后的参数为一个点(“.”)。这条命令最危险!会取消所有本地的 #修改(相对于暂存区)。相当于用暂存区的所有文件直接覆盖本地文件,不给用户任何确认的机会!
$ git checkout --. 或写作 git checkout
如果不加commit_id,那么git checkout --file_name 表示恢复文件到本地版本库中最新的状态。
$ git checkout commit_id --file_name
#为注释
*.txt #忽略所有 .txt结尾的文件
!lib.txt #但 lib.txt除外
/temp #仅忽略项目根目录下的TODO文件,不包括其它目录temp
build/ #忽略build/目录下的所有文件
doc/*.txt #会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
提交暂存区到仓库区
$ git commit -m [message]
提交暂存区的指定文件到仓库区
$ git commit [file1] [file2] … -m [message]
提交工作区自上次commit之后的变化,直接到仓库区,跳过了add,对新文件无效
$ git commit -a
提交时显示所有diff信息
$ git commit -v
使用一次新的commit,替代上一次提交
如果代码没有任何新变化,则用来改写上一次commit的提交信息
$ git commit --amend -m [message]
重做上一次commit,并包括指定文件的新变化
$ git commit --amend [file1] [file2] …
修订提交
如果我们提交过后发现有个文件改错了,或者只是想修改提交说明,这时可以对相应文件做出修改,将修改过的文件通过"git add"添加到暂存区,然后执行以下命令:
git commit --amend
撤销上一次的提交
原理就是放弃工作区和index的改动,同时HEAD指针指向前一个commit对象
git reset --hard HEAD~1(见上面15)
git reset --soft HEAD^
git reset --hard <commit_id>
如果现在又想恢复被撤销的提交可用"git reflog"查看仓库中所有的分支的所有更新记录,包括已经撤销的更新,撤销方法与前面一样。
列出所有本地分支
$ git branch
列出所有远程分支
$ git branch -r
列出所有本地分支和远程分支
$ git branch -a
新建一个分支,但依然停留在当前分支
$ git branch [branch-name]
新建一个分支,并切换到该分支
$ git checkout -b [branch]
$ git switch -c [branch]
新建一个分支,指向指定commit
$ git branch [branch] [commit]
新建一个分支,与指定的远程分支建立追踪关系
$ git branch --track [branch] [remote-branch]
切换到指定分支,并更新工作区
$ git checkout [branch-name]
$ git switch [branch-name]
切换到上一个分支
$ git checkout -
建立追踪关系,在现有分支与指定的远程分支之间
$ git branch --set-upstream [branch] [remote-branch]
合并指定分支到当前分支
$ git merge [branch]
选择一个commit,合并进当前分支
$ git cherry-pick [commit]
删除分支
$ git branch -d [branch-name]
删除远程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。