git checkout到指定的tag
git checkout -b [分支名称] [tag标签名称]
比如:git checkout -b new_branch v1.0
git commit之后还没有push,如何撤销本次的commit?
使用命令:
git reset --soft HEAD^
这样就成功撤销了commit,如果想要连着add的也撤销的话,–soft改为–hard(删除工作空间的改动代码)。
命令详解:
HEAD^ 表示上一个版本,即上一次的commit,也可以写成HEAD~1
如果进行两次的commit,想要都撤回,可以使用HEAD~2
–soft
不撤销工作空间的改动的代码 ,即撤销commit,但不撤销git add file
–hard
撤销工作空间的改动代码,即撤销commit且撤销add
git commit之后如何修改注释
如果commit注释写错了,先要改一下注释,有其他方法也能实现,如:
git commit --amend
这时候会进入vim编辑器,修改完成你要的注释后保存即可。
配置
查看所有的配置
git config --list
配置用户名和邮箱
git config --global user.name "username"
git config --global user.email "email"
–global 表示全局的,即当前用户都有效,该配置会出现在 ~/.gitconfig 文件中,~表示当前用户的目录
不加 --global 就表示是局部的,如:
git config user.name "username"
git config user.email "email"
局部是只对当前仓库起效的,它的配置信息会在当前仓库根目录/.git/config文件下。
git stash
使用场景,在一个分支修改了某些东西后,切换到新分支,并且希望将这个分支的修改内容带到新分支中,可以在当前分支使用git stash暂存工作区的修改,然后checkout到新分支,然后执行git stash apply即可。
git stash pop 与 git stash apply的区别,git stash pop 会删除stash 栈中的记录,git stash apply则不会,因此可以恢复多次。
如果git stash apply之后又不想要更新后的内容了,想恢复到之前的内容,怎么办?
git reset --hard HEAD //撤销工作区的修改并撤销暂存区(staged)的修改到commit状态
WIP
git stash的WIP是什么意思?
WIP全称:Work in progress,表示正在工作过程中的。即这部分代码是半成品。WIP其实代表的就是WIP版本里面的代码是“正在编写中的代码”,还不能commit的代码,但是我们可以把这部分代码用git stash指令先储藏起来,并用WIP给他们做标记。
git restore
git restore 撤销工作区的全部修改 如何使用?
git restore --worktree README.md
表示撤销 README.md 文件工作区的的修改, --worktree参数等同于 -W
git restore --staged README.md
表示撤销暂存区的修改,将文件状态恢复到未 add 之前的状态, --staged参数等同于 -S
git restore -s HEAD~1 README.md
表示将当前工作区切换到上个 commit 版本
git restore -s dbv213 README.md
表示将当前工作区切换到指定 commit id 的版本
当前修改的空间是工作区,叫worktree
git add之后,文件是在暂存区,叫staged
GIT 获取指定时间的历史版本代码
如何根据时间获取commit或者根据时间查看git log日志信息
查看某个时间点以后的log:
git log --since=“Fri Aug 10 19:16:10 2012 +0800”
或者用–until 查看某个时间点以前的log:
git log --before=“Fri Aug 10 19:16:10 2012 +0800”
fatal: remote origin already exists.
执行git remote add origin "github仓库地址"
时报错:remote origin already exists
说明本地库关联的远程仓库origin已经存在,删除关联的远程仓库origin即可: git remote rm origin
参数-和–有什么区别
^ 和 ~ 的区别
git add -A 和 git add . 的区别
根据关键字过滤commit记录
比如想过滤含有helloworld的commit记录:
git log --grep="helloworld"
根据commitid查看做了哪些修改
方式1:
git show commid
方式2:
也可以在在github上进入到仓库中,然后在左上角的搜索框中输入commitid,点击搜索,即可看到本次commitid对应的修改内容。
参考:
Git配置用户名和邮箱
Git - stash用法
git stash详解
命令行参数前的「-」和「–」有什么区别?