git命令
重置本地提交:
git reset --hard c3446cb28bc30b08931cd4d3ad2d541e058ebd04 (当前版本的sha)
回滚操作
git revert -m 1 sha(18d290169ac80120c4401f17719122c3500ecfaf)
重置merge
git reset --merge sha(18d290169ac80120c4401f17719122c3500ecfaf)merge前的任何一次提交的hash串
命令拉去远程分支
git checkout features/dev_arvr/dev_arvr
git checkout features/QR/PZG-V7.0.8
更新远程分支列表
git remote update origin --prune
切换到当前分支 —>合并分支
git merge 分支名
查看标签
git tag
创建标签
git tag v7.0.4_release
发布标签
git push origin v7.0.4_release
将本地所有标签一次性提交到git服务器
git push origin –tags
删除本地tag
git tag -d test_tag
本地tag删除了,再执行该句,删除线上tag
git push origin :refs/tags/test_tag
分支操作基础命令:
origin为远程仓库名
命令:
git push origin local_branch:remote_branch
备注:此命令中,local_branch必须为你本地存在的分支,remote_branch为远程分支,如果remote_branch不存在则会自动创建分支;类似,git push origin :remote_branch,local_branch留空的话则是删除远程remote_branch分支。
$ git branch dev //创建本地分支 dev
$ git checkout dev //切换本地分支 dev
$ git checkout -b dev //相当于以上两条命令:创建 dev 分支并切换
Switched to a new branch 'dev'
$ git branch
//查看本地分支
git branch -a
查看远程分支
git branch -r
备注:git branch 命令会列出所有分支,当前分支前面会标一个*号。
git branch -d dev //删除本地分支 dev
Deleted branch dev (was fec145a).
推送删除本地分支到远端 git push origin :dev
git库太大 git clone命令
-
最好用以下方法Clone单个分支:
git clone http://XXXXX.git -b 你要的分支名 --single-branch
-
clone成功后,想获取其他分支,用以下命令:
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
git fetch --all
下载:下载新库代码请参考以下命令,
git clone http:XXXXXXXXXX.git --reference /User/JD4iPhone10 --dissociate
(/User/JD4iPhone10——替换为本机老库代码目录)
查看log 提交作者
git log --author=cuihongbao@jd.com
子模块git命令
git submodule add -f http://XXXXXXXXXX.git XXXXXXModule/XXXXXXModule/Classes/XXXXXXXModule
使用git命令修改“commit message”同时重置当前Commit的user/email:
git commit --amend --reset-author ()
如果需要修改历史提交消息
git rebase -i HEAD~3
输出如下
pick commit 1
pick commit 2
pick commit 3
要修改哪个,就把那行的pick改为edit,然后退出。例如想修改commit 1的author,光标移到第一个pick,按i键进入INSERT模式,把pick改为edit:
edit commit 1
pick commit 2
pick commit 3
-- INSERT --
然后按esc键,退出INSERT模式,输入:wq退出,这时可以看到提示,可以修改commit 1的信息了:
输入amend命令重置用户信息:
git commit --amend --reset-author
会出现commit 1的提交记录及注释内容,可进入INSERT模式修改注释,:wq退出。
这时再查看提交历史,发现commit 1的author已经变成xxxx(xxxxx@email.com)了,且是最新一次记录。
通过continue命令回到正常状态:
git rebase --continue