git的使用记录

以下是一些 Git 常用技巧,涵盖提交管理、分支操作、版本回退等场景,方便日常开发中高效处理代码版本问题:

### 一、提交相关技巧

1. **修改最近一次提交信息**若提交信息写错,无需撤销提交,直接修改:

   ```bash
   git commit --amend

会打开编辑器修改上次提交信息,保存后覆盖原提交。

  1. 提交部分文件(暂存指定文件)不想提交所有修改,只暂存部分文件:

    git add 文件名1 文件名2  # 单独暂存指定文件
    git add -p 文件名        # 交互式暂存文件的部分修改(按 y/n 选择修改块)
    
  2. 撤销工作区的修改(未暂存)丢弃对某个文件的未暂存修改(危险!不可逆):

    git checkout -- 文件名
    # 或(Git 2.23+ 推荐,更清晰)
    git restore 文件名
    
  3. 撤销暂存区的文件(已 git add 但未 commit)从暂存区移除文件,但保留工作区修改:

    git reset HEAD 文件名  # 单个文件
    git reset HEAD .       # 所有文件(如你提到的用法)
    # 或(Git 2.23+)
    git restore --staged 文件名
    

二、版本回退与撤销

  1. 彻底回退到历史版本(丢弃后续提交)若需要回到某个历史版本(会丢弃该版本后的所有提交,谨慎使用):

    git reset --hard  commit_id  # commit_id 可通过 git log 查看
    

    若回退后想恢复,可通过 git reflog 找到之前的 commit_id 再 reset。

  2. 撤销某次提交(保留后续修改)生成一个新提交,抵消某次提交的修改(适合已推送到远程的情况):

    git revert commit_id
    

    不会删除历史提交,更安全。

  3. 暂存当前工作区,切换分支处理其他任务开发到一半需要切分支,但不想提交当前修改:

    git stash                # 暂存工作区和暂存区的修改
    git checkout 其他分支    # 处理完其他任务后
    git checkout 原分支
    git stash pop            # 恢复暂存的修改(并删除 stash 记录)
    # 查看所有 stash:git stash list;恢复指定 stash:git stash apply stash@{n}
    

三、分支操作

  1. 创建并切换到新分支简化分支创建流程:

    git checkout -b 新分支名  # Git 2.23+ 也可用 git switch -c 新分支名
    
  2. 合并分支时只取部分提交从 A 分支挑选个别提交合并到当前分支:

    git cherry-pick commit_id  # commit_id 是 A 分支上的提交ID
    
  3. 删除本地 / 远程无用分支

    git branch -d 本地分支名       # 删除已合并的本地分支
    git branch -D 本地分支名       # 强制删除未合并的本地分支
    git push origin --delete 远程分支名  # 删除远程分支
    

四、其他实用技巧

  1. 查看文件的修改历史查看某个文件的所有提交记录及修改内容:

    git log -p 文件名  # 按 q 退出
    
  2. 忽略已提交过的文件若之前误提交了不需要的文件(如日志、缓存),想从版本控制中移除但保留本地文件:

    git rm --cached 文件名  # 从暂存区删除,保留工作区文件
    # 然后在 .gitignore 中添加该文件,再提交 .gitignore
    
  3. 拉取远程分支到本地(本地不存在该分支)直接拉取并创建与远程同名的本地分支:

    git checkout -b 分支名 origin/分支名
    
  4. 强制推送本地修改到远程(谨慎使用)当本地回退版本后,远程版本比本地新,需强制覆盖远程(多人协作时可能覆盖他人提交,慎用):

    git push -f origin 分支名
    
posted @ 2025-11-14 11:04  公众号python学习开发  阅读(19)  评论(0)    收藏  举报