从远程分支上获取其他分支
git checkout <远程分支名> # 这有时候能检出远程的有时候不能,不知道咋回事
git checkout --track hotfixes/BJVEP933 # 检出远程分支hotfixes/BJVEP933并创建本地跟踪分支
git checkout -b devel origin/develop # 从远程分支develop创建新本地分支devel并检出
查看分支追踪情况
git branch -vv
查看提交日志
git log
查看某次提交的内容
从上一步可以看到commitID
git show commitID
查看分支是从哪个分支创建的
git reflog --date=local | grep <branchname>
查看分支创建时间
git reflog show --date=iso <branch name>
git放弃本地文件修改
- 未使用git add 缓存代码
使用git checkout -- filename,注意中间有--
git checkout -- filename
放弃所有文件修改 git checkout .
git checkout .
此命令用来放弃掉所有还没有加入到缓存区(就是 git add 命令)的修改:内容修改与整个文件删除
此命令不会删除新建的文件,因为新建的文件还没加入git管理系统中,所以对git来说是未知,只需手动删除即可
- 已使用git add 缓存代码,未使用git commit
使用 git reset HEAD filename
git reset HEAD filename
放弃所有文件修改 git reset HEAD
git reset HEAD
此命令用来清除 git 对于文件修改的缓存。相当于撤销 git add 命令所在的工作。在使用本命令后,本地的修改并不会消失,而是回到了第一步1. 未使用git add 缓存代码,继续使用用git checkout -- filename,就可以放弃本地修改
- 已经用 git commit 提交了代码
使用 git reset --hard HEAD^ 来回退到上一次commit的状态
git reset --hard HEAD^
或者回退到任意版本git reset --hard commit id ,使用git log命令查看git提交历史和commit id
git reset --hard commitId
// 注:强制提交后,当前版本后面的提交版本将会删掉!
git push -f
查看用户名和邮箱地址:
$ git config user.name
$ git config user.email
修改用户名和邮箱地址
$ git config user.name "xxxx"
S git config user.email "xxxx"
修改全局用户名和邮箱地址
$ git config --global user.name "xxxx"
S git config --global user.email "xxxx"
修改提交后的commit信息
要更改尚未推送到远程存储库的最新提交的消息,请使用该--amend标志再次提交。
git commit --amend -m "New commit message."
打tag
tag其实就是一个标记,和某次提交没关系,就是记录仓库代码在某个时间点的状态,比如某天的代码比较有意义,那就对那天的代码打个标签,可以方便回滚等。
https://git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-%E6%89%93%E6%A0%87%E7%AD%BE
列出已有 tag
git tag
模糊查询
git tag -l "v1.8.*"
查询出v1.8开头的所有的tag
创建tag
第一种,附注标签
git tag -a <tagname> -m "备注信息"
第二种,轻量tag
git tag <tagname>
提交tag
提交某个tag
git push origin <tagname>
提交所有的tag
git push origin --tags
网友评论