// 设置用户名和邮箱
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
git常用配置和命令
于 2024-01-25 17:12:17 首次发布