git常用配置和命令

// 设置用户名和邮箱
git config --global user.name xxx
git config --global user.email xxx

// 高亮显示git status/diff
git config --global color.ui false
git config --global color.ui true

// 对比和工作树或者暂存区的差异
git diff 后面可以跟具体路径下文件
git diff --stat 获取文件更改的个数 增加行数 删除行数
git diff --numstat 表格形式获取增加行数和减少行数

// 清空untracked files
git clean -fd

// 提交当前目录下被修改的文件,包括新建和删除的文件
git add .

// 将当前未提交的修改暂存
git stash

// 恢复暂存的修改到当前工作区
git stash pop

// 查看当前修改统计 必须得commit后才能查看
git log --stat

// 修正追加提交
git commit --amend

// 相对于--hard --soft是比较柔软的回退已提交的commit,并将commit的修改内容放回暂存区(HEAD^是HEAD^1的简写 )
git reset --soft HEAD^
git reset --soft commit_id

// 从远程仓库获取更新(强制更新本地代码和远程仓库文件一致)
git fetch --all && git reset --hard origin/master

merge conflict解决方法
1、直接 git pull(git pull是git fetch && git merge的简写,类似的,git pull --rebase是git fetch && git rebase的简写!)
执行完后会显示冲突的文件修改 修改后merge continue

2、download gerrit上对应提交的Patch-File,比如解压9b8c4a6.diff.zip后的文件为e268a4e.diff,将e268a4e.diff拷贝到编译服务器,在对应代码路径下执行
patch -p1 < ~/e268a4e.diff
find | grep rej$
文件名带后缀rej即为有冲突的文件
对应修改后重新 git add git commit git push 即可

// 提交到远程仓库
git push <远程主机名> <本地分支名>:<远程分支名>
git push : 推送
origin : 远程库的名字
HEAD : 是一个特别的指针,它是一个指向你正在工作的本地分支的指针,可以把它当做本地分支的别名,这样git就可以知道你工作在哪个分支
refs/for : 意义在于我们提交代码到服务器之后是需要经过code review之后才能进行merge的
refs/heads : 不需要code review
git push origin HEAD:refs/for/<BRANCH>

// 假设当前位于bugFix分支,合并main和bugFix两个分支。通常会先切换到main分支,再合并
git switch main
git rebase bugFix
// 还是位于bugFix分支,不切换到main分支合并两个分支
git rebase <basebranch> <topicbranch>
git rebase bugFix main

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值