Git 基础操作
目录
前言
本文记录一下日常使用 Git 过程中用到的一些操作,更多操作可使用git --help
或者 man
手册进行查看。
基础操作
1. 基础配置
# 列出所有配置
git config -l
# 设置全局配置(也可针对每个仓库分别设置)
git config --global user.name <name>
git config --global user.email <email>
git config --global http.proxy <proxy_url>
2. 远程仓库拉取
git pull <remote_repo_url>
3. 分支处理
# 基于特定提交创建一个新分支
git checkout -b new-branch <commit-hash>
# 删除一个分支
git branch -d <branch_name>
git branch -D <branch_name> # 直接删除未提交的分支
4. 添加未追踪文件到索引
# 添加所有文件
git add -A .
# 添加指定文件
git add <file_path>
5. 删除所有添加但是未被跟踪的文件
git clean -df
6. 推送到远程仓库
git push origin HEAD:refs/for/<branch>
7. 上游代码合并
- 将上游仓库添加为远程仓库
git remote add upstream <upstream-repo-url>
- 拉取上游社区代码
git fetch upstream
- 切换到需要合并的分支
git checkout <your-branch>
- 合并上游仓库代码
// 合并最新代码
git merge upstream/<branch>
// 合并某一个分支之前的代码
git merge <commit hash>
8. 合并本次提交到之前的提交(不需要再次commit)
git commit --amend --no-edit
9. 合并多个commit到一个commit
注意:commitID 为需要 pick 的上一个的commit。
git rebase -i <commitID>
// 然后修改待合并的commit为sqush(或 s )
例如:把 fbdee2e6 之后提交的commit合并到 fbdee2e6 中
commit efd4880c297b439bf6d87006233b5ffb6483d57c (HEAD)
commit bd0f2bbf3a4fa690c4007dc06d3b4a89ed6d261e
commit fbdee2e67b86902cacaf1718d6c1434f8be05c03
commit 59f442377a72d9df76fbb4167ab803411817a2ca
git rebase -i 59f442377a72d9df76fbb4167ab803411817a2ca
得到:
pick fbdee2e67b commit3
pick bd0f2bbf3a commit2
pick efd4880c29 commit1
修改后保存退出:
pick fbdee2e67b commit3
s bd0f2bbf3a commit2
s efd4880c29 commit1
10. commit的时候附带sign-off
git commit -m -s "<commit>"
11. 使用git工具打patch
# 根据两个hash值进行对比
git diff <commit_hash_1> <commit_hash_2> > patch_file.patch
# 对比当前HEAD与上一次提交的patch
git format-patch HEAD~1
12. 应用patch
# 应用patch
git apply patch_file.patch
# 合并可以合并的代码,并输出冲突到文件
git apply --reject patch_file.patch
# 将补丁应用并且创建一个新的提交
git am -3 < patch_file.patch
总结
本文只列出 git
部分命令,后续会继续补充相关内容。