Git命令学习

来源:互联网 发布:126邮箱imap端口 编辑:程序博客网 时间:2024/06/11 16:59
█版本控制
git commit -m [comment] 将暂存区中的变更反应到本地git库中
git commit -a -m [comment] 直接将工作区的变更反应到本地git库中(git add + git commit)
git merge [master] 将指定master分支代码合并到当前所在分支
git pull origin master:master 表示从远程库master将代码pull到本地master库中
git branch -r 查看远程Git库中的分支
git branch --set-upstream-to=origin/<branch> master 设置本地master分支跟踪远程分支origin/<branch>
git checkout -b dev origin/dev 可以使用checkout命令来把远程分支取到本地,并自动建立tracking
git branch 分支名称 创建本地分支
git push origin 分支名称 创建远程分支


█冲突
git stash 缓存本地版本
git stash apply 使用本地版本


█差异比较
git log -p 显示每一次提交与其父节点提交内容之间快照的差异
git log -p master..origin/master比较本地库与远程库之间的差异
git log --pretty=oneline 文件名 列出文件的所有改动历史
git show 356f6def9d3fb7f3b9032ff5aa4b9110d4cca87e 显示具体的某次的改动的修改

git diff 用一种统一的格式来显示两个快照或文件之间的差异(不带参数时表示比较工作区与暂存区中的差异)
git diff --staged 比较暂存区与git库中的差异
git diff HEAD 查看最后一次提交之后的工作区与git库中所有的变更(HEAD表示最新状态)
git diff v1.6.0 -- README 查看v1.6后README文件发生的变更
git diff v1.0 v1.1 比较两个版本之间的差异
git diff master dev 在合并dev branch到master之前比较他们之间最新状态的差异(master中的修改也会被比较)
git diff master...dev 在合并dev branch到master之前比较分支最新状态与master生成分支时状态的差异
git diff ...dev 与“git diff master...dev”的效果一样

█回滚
git reset --hard the_commit_id 抛弃本地的修改
git reset [Log Number] [file name] 针对某个文件回滚到固定版本,之后再commit提交即可
git revert sha1_of_commit git 自身功能来回滚代码,取消上一次的修改(虽然代码是实现了回滚,同时也会自动产生一条“回滚代码”的 log)
git clone --bare repo.client repo.git 从客户端仓库生成服务端仓库可以将本地reset过后的库新建一个服务端仓库。
然后把现在服务端仓库中的 hooks, info 目录和 config, description 两个文件拷贝到新生成的服务端仓库当中。
然后备份旧的服务端仓库,删掉用新生成服务端仓库替代,并调整相关文件权限。
git push -f origin HEAD:分支名称

█远程git server切换时操作
.git/config 修改文件中的server ip address(如果包含sub module得话,也需要修改./git/<sub module name>/config文件中的内容)

█删除分支
git branch -d dev 其中dev为本地分支名称
git push origin :rc-dev 其中rc-dev为远程分支名称
█清理git分支
git fetch origin && git reset --hard origin/CS-8557 && git clean -f
█复制git分支
git clone git@10.0.10.92:cornerstone/core.git
█合并git分支
git cherry-pick f18d9122874aeb3fe8eb2e7e87c2ec5c7c2a5c9a
█分支重命名
1. 本地分支重命名
Git branch -m oldbranchname newbranchname
2. 远程分支重命名 (假设本地分支和远程对应分支名称相同)
a. 重命名远程分支对应的本地分支
git branch -m old-local-branch-name new-local-branch-name
b. 删除远程分支
git push origin  :old-local-branch-name
c. 上传新命名的本地分支
git push origin  new-local-branch-name: new-local-branch-name

git fetch origin && git reset --hard origin/dev && git clean -f -d

原创粉丝点击