git常用命令

版本表示法

显示git分支

git rev-parse --symbolic --branches

git显示里程碑

git rev-parse --symbolic --tags

显示定义的所有引用

git rev-parse --symbolic --glob=refs/*

显示HEAD对应的SHA的哈希值

git rev-parse HEAD
git使用资料

git使用分支的场景

http://stormzhang.com/git/2014/01/29/git-flow/
http://nvie.com/posts/a-successful-git-branching-model/

git使用参考

https://github.com/geeeeeeeeek/git-recipes/wiki
https://www.atlassian.com/git/tutorials/setting-up-a-repository/git-init
常用命令

git删除远程分支

# 一般先查看远程分支是否存在
git branch -a | grep remote_branch_name
git push origin :remote_branch_name
git branch -a | grep remote_branch_name

删除本地分支

git branch -D branchname

git创建本地分支并推送到远程新建一个分支

git branch local_branch_name
git checkout local_branch_name
git add files
git commit -m "working context for local branch name"
git push origin local_branch_name

git切换到远程分支

git branch remotes/origin/xxx
git checkout -b xxx

git设置不自动转换项目工程所在平台的换行符

git config --global core.autocrlf false
git config --global core.safecrlf true  

git设置项目自动记住账户密码

git config --global credential.helper store

git将更新的文件回退(本地)

git log # 获取当前最新分支的hash值
git checkout commit_id -- file      # 回退本地file文件的修改

git-merge合并操作

# 背景:当前的工作需要引入线上最新代码,则合并线上分支代码到当前分支下
git checkout feature
git merge master

or

git merge master feature

git-rebase合并操作

# 背景:会把整个 feature 分支移动到 master 分支的后面,有效地把所有 master 分支上新的提交并入过来。但是,rebase 为原分支上每一个提交创建一个新的提交,重写了项目历史,并且不会带来合并提交
# 将feature并入master分支
git checkout feature
git rebase master

交互式rebase操作

# 背景:被用于将 feature 分支并入 master 分支之前,清理混乱的历史
git checkout feature
git rebase -i master

Rebase 的黄金法则

# git rebase 的黄金法则便是,绝不要在公共的分支上使用它(不要在develop分支上使用rebase)
# 你运行 git rebase 之前,一定要问问你自己[有没有别人正在这个分支上工作]
# 将master分支移动到feature分支后面
git checkout master
git rebase feature  # 确保master分支上没有人在进行工作

git push --force  ## 如果没有使用--force,git会停止push

git-reset操作

# reset 将一个分支的末端指向另一个提交。这可以用来移除当前分支的一些提交
# 比如在一个热修复的分支提交了两次不必要的操作,想要撤回(仅限本地未提交到远程),下次 Git 执行垃圾回收的时候,这两个提交会被删除
git checkout hotfix
git reset HEAD~2

--soft – 缓存区和工作目录都不会被改变
--mixed – 默认选项。缓存区和你指定的提交同步,但工作目录不受影响
--hard – 缓存区和工作目录都同步到你指定的提交

git-checkout操作

# 传入分支名时,可以切换到那个分支
git checkout branchname

# 还可以传入提交的引用来 checkout 到任意的提交
git checkout HEAD~2

git-revert操作(Revert 撤销一个提交的同时会创建一个新的提交)

# 找出倒数第二个提交,然后创建一个新的提交来撤销这些更改,然后把这个提交加入项目中
git checkout hotfix
git revert HEAD~2

# git revert 可以用在公共分支上,git reset 应该用在私有分支上
# git revert 当作撤销已经提交的更改,而 git reset HEAD 用来撤销没有提交的更改
git使用日志查看提交历史

显示limit个提交

git log -n <limit>

将每个提交压缩到一行。当你需要查看项目历史的上层情况时这会很有用

git log --oneline

哪些文件被更改了,以及每个文件相对的增删行数

git log --stat

显示每个提交全部的差异

git log -p

搜索特定作者的提交, 可以是字符串或正则表达式

git log --author="<pattern>"

搜索提交信息匹配特定 的提交。 可以是字符串或正则表达式

git log --grep="<pattern>"

显示在 some-feature 分支而不在 master 分支的所有提交的概览

git log --oneline master..some-feature

git切换为远程分支

git fetch origin
git checkout -t origin/remote_branch_name

git 本地回滚

git checkout filename

git冲突

# 内容冲突
1. 相同文件相同区块下的内容存在差异则会出现冲突说明
2. 相同文件相同的区块无差异,相同文件不同区块存在增删代码,则会合并

# 树冲突
1. git提交的文件信息重命名或删除

# 逻辑冲突
git项目代码引入的文件名称被修改过

git fork 远程github

## 首先创建自己的空项目作为仓库
## 将自己项目拉取下来
git clone https://myRepo
cd myRepo

## 添加远程方式
git remote add upstream https://github.com/repo.git

## 将远程master拉取下来
git fetch upstream master

## 拉取github所有的分支
git fetch upstream

## 再根据分支切换到想要的分支然后基于此自定义变化
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

疾风先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值