Skip to content

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 -v

2. 修改远程地址

bash
git remote set-url origin NEW_REMOTE_URL

3. 验证修改

bash
git remote -v

4. 推送到新地址

bash
git push origin main

5. 添加或替换其他远程地址

bash
git remote add NAME NEW_REMOTE_URL

6. 删除远程地址

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 FILE
  • git reset HEAD FILE 会将指定文件从暂存区移回工作区,修改仍然保留在工作区中,但不会再被标记为已暂存。

2. 丢弃工作区的修改

bash
git checkout -- FILE
  • git checkout -- FILE 会将文件恢复到上一次提交时的状态,丢弃工作区中的修改
场景命令
仅取消暂存区的修改git reset HEAD FILE
取消暂存区修改并恢复文件内容git reset HEAD FILEgit checkout -- FILE

branch

1. 查看分支

bash
git branch
git branch -a
git branch -r

2. 创建分支

bash
git branch BRANCH_NAME
git checkout -b BRANCH_NAME

3. 切换分支

bash
git checkout BRANCH_NAME
git checkout BRANCH_NAME COMMIT_HASH

4. 删除分支

bash
git branch -d BRANCH_NAME
git branch -D BRANCH_NAME
git push origin --delete BRANCH_NAME

5. 合并分支

bash
git merge BRANCH_NAME

解决冲突后:

bash
git add FILE
git commit -m DESC

6. 推送分支

bash
git push origin BRANCH_NAME

7. 重命名分支

bash
git branch -m NEW_BRANCH_NAME
git branch -m OLD_BRANCH_NAME NEW_BRANCH_NAME

8. 分支比较

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_BRANCH

b. 执行合并:

bash
# 将 SOURCE_BRANCH 的更改合并到 TARGET_BRANCH
git merge SOURCE_BRANCH

c. 解决冲突(如有):

  • 如果合并过程中有冲突,Git 会提示哪些文件有冲突。
  • 手动编辑冲突的文件,解决冲突后执行:
bash
git add CONFLICTED_FILE
git commit

3. 合并模式

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 commit

6. 示例:从开发分支合并到主分支

bash
git checkout main
git merge develop

cherry-pick

1. 用法

bash
git cherry-pick COMMIT_HASH

2. 提交多个hash

bash
git cherry-pick START_COMMIT_HASH^..END_COMMIT_HASH
  • START_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_HASH

rm

1. 常用操作

bash
git rm FILE

2. 选项详解

选项说明
--cached仅从版本库中删除,保留工作区文件
bash
git rm --cached FILE

3. 注意事项

恢复已删除的文件:

bash
git checkout COMMIT_HASH -- file.txt

tag

1. 查看现有标签

bash
git tag

2. 创建附注标签

bash
git tag -a TAG_NAME -m "MESSAGE"

3. 给特定的提交打标签

bash
git tag TAG_NAME COMMIT_HASH

4. 推送标签到远程仓库

bash
git push origin TAG_NAME

5. 删除标签

bash
git tag -d TAG_NAME
git push origin --delete TAG_NAME

6. 检查标签详细信息

bash
git show TAG_NAME

7. 拉取标签

8. 拉取标签和代码的区别

9. 检出到某个标签

bash
git checkout TAG_NAME
git checkout -b NEW_BRANCH_NAME