部分 GIT 命令

配置本地的用户和邮箱

git config --local user.name "username"
git config --local user.email username@mail.com

切换分支

git checkout dev

创建并切换分支

git checkout -b private_branch

显示版本库 .git 所在位置

git rev-parse --git-dir

可以在 .git/hooks 目录下编辑钩子脚本,可以在某些 git 命令执行时运行钩子,脚本名字是固定的比如

applypatch-msg
pre-applypatch
post-applypatch
pre-commit
prepare-commit-msg
commit-msg
post-commit
pre-rebase
post-checkout
post-merge
pre-receive
update
post-receive
post-update
pre-auto-gc
post-rewrite

添加修改文件

git add filename

commit 修改

git commit -m "commit-message"

覆盖上一个 commit

git commit --amend -m "commit-message"

提交

git push origin HEAD:refs/for/dev

获取最新代码

git fetch origin dev
git rebase origin/dev

查看日志

git log

撤销当前 commit 回退到某个版本

git reset --mixed fd3164b68d1cc2c0cf9d8e44a52c8dece0500432

将 dev 的某个修改 merge 到 master

git checkout master
git cherry-pick 38361a68      ## commit id

如果遇到 fatal: bad object,可能是因为 master 没有 dev 的数据,要先执行

git fetch dev    或者    git fetch --all

如果 rebase 操作遇到冲突

# 1. 查看冲突的文件
git status
# 2. 修改文件解决冲突
# 3. 添加已解决的文件
git add filename
# 4. 重新 commit
git commit -c 

通过创建 private branch 多人开发 dev

# 1. 创建分支(分支名字可以任意)
git checkout dev
git checkout -b sandbox/username/project
# 2. 修改,commit
# 3. 提交
git push origin sandbox/username/project
# 4. 其他人可以拉这个 branch,修改,提交
git fetch --all
git branch -a
git checkout -b sandbox/username/project origin/sandbox/username/project
git commit
git push origin sandbox/username/project
# 5. 将这个 private branch 统一提交到 dev
git checkout dev
git fetch --all
git branch -a
git merge --squash origin/sandbox/username/project
git commit
git push origin HEAD:refs/for/dev


原文地址:https://www.cnblogs.com/moonlight-lin/p/13973245.html