Appearance
git
config
1. 临时修改用户名和邮箱
如果只需要修改当前仓库的提交者信息,可以使用以下命令:
bash
git config user.name "新用户名"
git config user.email "新邮箱"2. 全局修改用户名和邮箱
bash
git config --global user.name "新用户名"
git config --global user.email "新邮箱"remote
1. 查看当前远程地址
bash
git remote -v2. 修改远程地址
bash
git remote set-url origin NEW_REMOTE_URL3. 验证修改
bash
git remote -v4. 推送到新地址
bash
git push origin main5. 添加或替换其他远程地址
bash
git remote add NAME NEW_REMOTE_URL6. 删除远程地址
bash
git remote remove NAME| 操作 | 命令 |
|---|---|
| 修改远程地址 | git remote set-url origin NEW_URL |
| 添加远程地址 | git remote add NAME NEW_URL |
| 删除远程地址 | git remote remove NAME |
撤销修改
1. 丢弃已暂存的修改
bash
git reset HEAD FILEgit reset HEAD FILE会将指定文件从暂存区移回工作区,修改仍然保留在工作区中,但不会再被标记为已暂存。
2. 丢弃工作区的修改
bash
git checkout -- FILEgit checkout -- FILE会将文件恢复到上一次提交时的状态,丢弃工作区中的修改
| 场景 | 命令 |
|---|---|
| 仅取消暂存区的修改 | git reset HEAD FILE |
| 取消暂存区修改并恢复文件内容 | git reset HEAD FILE → git checkout -- FILE |
branch
1. 查看分支
bash
git branch
git branch -a
git branch -r2. 创建分支
bash
git branch BRANCH_NAME
git checkout -b BRANCH_NAME3. 切换分支
bash
git checkout BRANCH_NAME
git checkout BRANCH_NAME COMMIT_HASH4. 删除分支
bash
git branch -d BRANCH_NAME
git branch -D BRANCH_NAME
git push origin --delete BRANCH_NAME5. 合并分支
bash
git merge BRANCH_NAME解决冲突后:
bash
git add FILE
git commit -m DESC6. 推送分支
bash
git push origin BRANCH_NAME7. 重命名分支
bash
git branch -m NEW_BRANCH_NAME
git branch -m OLD_BRANCH_NAME NEW_BRANCH_NAME8. 分支比较
9. 分支管理常见流程
| 操作 | 命令 |
|---|---|
| 创建分支 | git branch BRANCH_NAME |
| 切换分支 | git switch BRANCH_NAME |
| 删除分支 | git branch -d BRANCH_NAME |
| 合并分支 | git merge BRANCH_NAME |
| 推送分支 | git push origin BRANCH_NAME |
| 跟踪分支 | git branch --set-upstream-to=origin/BRANCH_NAME |
merge
git merge 是 Git 中用于将多个分支的内容合并到一个分支的操作。它是团队协作开发中处理分支合并的核心命令之一。
1. 基本概念
git merge的作用:将另一个分支的更改整合到当前分支。- 合并的前提:必须在某个分支上运行
git merge命令,目标是将另一个分支的更改合并到当前分支。
2. 合并的基本步骤
a. 切换到目标分支(合并到哪个分支):
bash
git checkout TARGET_BRANCH
# 或者更常用的方式:
git switch TARGET_BRANCHb. 执行合并:
bash
# 将 SOURCE_BRANCH 的更改合并到 TARGET_BRANCH
git merge SOURCE_BRANCHc. 解决冲突(如有):
- 如果合并过程中有冲突,Git 会提示哪些文件有冲突。
- 手动编辑冲突的文件,解决冲突后执行:
bash
git add CONFLICTED_FILE
git commit3. 合并模式
git merge 主要有两种模式:快进合并(Fast-Forward)和 三方合并(3-Way Merge)。
快进合并 (Fast-Forward Merge)
当目标分支没有新的提交时,Git 直接将目标分支指针移动到源分支的最新提交。
三方合并 (3-Way Merge)
当两个分支都有新的提交时,Git 会创建一个新的合并提交。
4. 常用选项
| 选项 | 说明 |
|---|---|
--no-ff | 禁用快进合并,始终创建合并提交 |
--squash | 将多个提交压缩为一个 |
--abort | 取消合并操作 |
5. 冲突处理
bash
git add FILE
git commit6. 示例:从开发分支合并到主分支
bash
git checkout main
git merge developcherry-pick
1. 用法
bash
git cherry-pick COMMIT_HASH2. 提交多个hash
bash
git cherry-pick START_COMMIT_HASH^..END_COMMIT_HASHSTART_COMMIT_HASH是起始提交的哈希值。END_COMMIT_HASH是结束提交的哈希值。
3. cherry-pick 选项
| 选项 | 说明 |
|---|---|
-e | 编辑提交信息 |
-n | 不自动提交 |
-x | 在提交信息中记录来源 |
bash
git cherry-pick -e COMMIT_HASH
git cherry-pick -n COMMIT_HASH
git cherry-pick -x COMMIT_HASHrm
1. 常用操作
bash
git rm FILE2. 选项详解
| 选项 | 说明 |
|---|---|
--cached | 仅从版本库中删除,保留工作区文件 |
bash
git rm --cached FILE3. 注意事项
恢复已删除的文件:
bash
git checkout COMMIT_HASH -- file.txttag
1. 查看现有标签
bash
git tag2. 创建附注标签
bash
git tag -a TAG_NAME -m "MESSAGE"3. 给特定的提交打标签
bash
git tag TAG_NAME COMMIT_HASH4. 推送标签到远程仓库
bash
git push origin TAG_NAME5. 删除标签
bash
git tag -d TAG_NAME
git push origin --delete TAG_NAME6. 检查标签详细信息
bash
git show TAG_NAME7. 拉取标签
8. 拉取标签和代码的区别
9. 检出到某个标签
bash
git checkout TAG_NAME
git checkout -b NEW_BRANCH_NAME