代码管理中常用git操作

1、git常用命令速查

1.1 初始化相关操作

$ git config --global user.name "John Doe" # 配置用户名 !仅第一次必须

$ git config --global user.email je@example.com # 配置电邮 !仅第一次必须

$ git config --list # 查看配置信息

$ git init # 初始化仓库

$ git remote add origin git@github.com:michaelliao/learngit.git # 将本地仓库与远程仓库关联(远程仓库已创建)

1.2 提交代码相关操作

$ git clone git@github.com:michaelliao/learngit.git # 从远程仓库克隆代码到本地

$ git add [文件名/./--all] # 添加新的文件到暂存区

$ git commit -m "Story 182: Fix benchmark" # 提交更新

$ git commit -a -m 'added new benchmarks' # 跳过add命令直接提交

$ git pull # 同步远程仓库最新代码到本地

$ git push origin [分支名] # 推送代码到远程分支(加 -u 参数是同时关联远程与本地分支,一般新分支第一次推送时使用)

1.3 分支相关操作

$ git branch # 查看分支

$ git branch -v # 查看各分支最后一个提交对象

$ git branch --merged # 查看已经merge过的分支

$ git branch --no-merged # 尚未merge的分支

$ git branch -d testing # 删除掉分支(如果还没有merge,会出现错误,-D可以强制删除)

$ git branch -a # 查看所有分支(包括远程服务器)

$ git checkout iss53 # 切换到iss53分支

$ git checkout -b iss53 # 新建分支并切换到iss53分支 = $ git branch iss53; git checkout iss53

$ git merge dev # 合并dev分支到当前分支上(合并前要先切换到合并到的目标分支上)

1.4 状态查看相关操作

$ git log  # 查看提交log

$ git log --pretty=format:"%h - %an, %ar : %s" # 用特性的format查看log

$ git log --graph # 用图表的形式显示git的合并历史

$ git log --pretty=oneline # 简洁方式显示提交历史

$ git reflog # 查看所有提交历史,即使是已经被回退了的提交

$ git status # 检查文件当前的状态

$ git diff    #查看本地当前修改

$ git diff --cached # 若要看已经暂存起来的文件和上次提交时的快照之间的差异

$ git show commitid. 查看某次提交的修改

1.5 代码回退相关操作

$ git reset --hard HEAD^ # 将已经commit的代码回退到指定版本(HEAD^^是上上个版本,HEAD~3是上上上个版本,以此类推)

$ git reset --hard commit_id # 将版本回退到指定commitid,注意这个也可以向前进找到已经被回退之前的代码

$ git checkout -- readme.txt # 将工作区的修改回退,也就是将还未add的内容回退

$ git reset HEAD readme.txt # 将暂存区的修改回退,也就是将已经add还没有commit的内容回退(工作区修改依然存在,只是不在暂存区了)

$ git rm test.txt # 从版本库中删除文件

$ git rm --cached log.log # 从git仓库中删除不小心追踪的文件(用于gitignore之前追踪的文件) 

2、常见场景下git操作流程

2.1 远程仓库回退

本场景主要是本地代码出现问题,然后本地仓库回退了代码,同时也需要回退远程仓库的代码。

流程:

  • 先回退本地代码,具体回退操作可以参见1.5命令
  • 然后强制push到远程分支上去: git push origin mybranch -f

2.2 删除本地以及远程仓库分支

本场景主要是自己创建了临时分支,提交代码后临时分支不再需要,可以删除清理。

流程:

  • 本地先切换到非要删除分支上
  • 然后删除本地指定分支:git branch -D mybranch
  • 再之后删除远程分支:git push origin --delete mybranch

2.3 提交review后重新修改

本场景主要是已经commit并push了一次代码,发起review后还需要重新修改代码,但是又不想重新再开一个commit(个人分支仅仅push但还没有发起merge request 或者 已经发起了merge request均适用)。

流程:

  • 修改本地代码
  • add代码:git add --all/./修改的文件
  • 重新commit:git commit --amend
  • push代码:git push origin mybranch -f

2.4 解决merge冲突

本场景是自己分支新push的代码发起了merge request,但是在merge时发现跟master分支已有代码有冲突,这时需要解决冲突重新merge。

流程:

  • 首先本地切换到自己的分支:git checkout mybranch
  • 然后fetch一下最新代码:git fetch
  • 然后将自己分支rebase一下:git rebase -i origin/master(要rebase到的远程分支)
  • 然后手动解决冲突(rebase后会提示哪些文件有冲突,有冲突的文件里面会有冲突的代码块,直接修改成最终的正确代码即可)
  • add冲突文件:git add 冲突文件
  • 继续rebase:git rebase --continue(这里如果还有冲突会继续提示冲突,继续修改然后继续add、rebase --continue直到没有冲突为止)
  • push代码:git push origin mybranch -f
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值