git的使用记录
以下是一些 Git 常用技巧,涵盖提交管理、分支操作、版本回退等场景,方便日常开发中高效处理代码版本问题:
### 一、提交相关技巧
1. **修改最近一次提交信息**若提交信息写错,无需撤销提交,直接修改:
```bash
git commit --amend
会打开编辑器修改上次提交信息,保存后覆盖原提交。
-
提交部分文件(暂存指定文件)不想提交所有修改,只暂存部分文件:
git add 文件名1 文件名2 # 单独暂存指定文件 git add -p 文件名 # 交互式暂存文件的部分修改(按 y/n 选择修改块) -
撤销工作区的修改(未暂存)丢弃对某个文件的未暂存修改(危险!不可逆):
git checkout -- 文件名 # 或(Git 2.23+ 推荐,更清晰) git restore 文件名 -
撤销暂存区的文件(已 git add 但未 commit)从暂存区移除文件,但保留工作区修改:
git reset HEAD 文件名 # 单个文件 git reset HEAD . # 所有文件(如你提到的用法) # 或(Git 2.23+) git restore --staged 文件名
二、版本回退与撤销
-
彻底回退到历史版本(丢弃后续提交)若需要回到某个历史版本(会丢弃该版本后的所有提交,谨慎使用):
git reset --hard commit_id # commit_id 可通过 git log 查看若回退后想恢复,可通过
git reflog找到之前的 commit_id 再 reset。 -
撤销某次提交(保留后续修改)生成一个新提交,抵消某次提交的修改(适合已推送到远程的情况):
git revert commit_id不会删除历史提交,更安全。
-
暂存当前工作区,切换分支处理其他任务开发到一半需要切分支,但不想提交当前修改:
git stash # 暂存工作区和暂存区的修改 git checkout 其他分支 # 处理完其他任务后 git checkout 原分支 git stash pop # 恢复暂存的修改(并删除 stash 记录) # 查看所有 stash:git stash list;恢复指定 stash:git stash apply stash@{n}
三、分支操作
-
创建并切换到新分支简化分支创建流程:
git checkout -b 新分支名 # Git 2.23+ 也可用 git switch -c 新分支名 -
合并分支时只取部分提交从 A 分支挑选个别提交合并到当前分支:
git cherry-pick commit_id # commit_id 是 A 分支上的提交ID -
删除本地 / 远程无用分支
git branch -d 本地分支名 # 删除已合并的本地分支 git branch -D 本地分支名 # 强制删除未合并的本地分支 git push origin --delete 远程分支名 # 删除远程分支
四、其他实用技巧
-
查看文件的修改历史查看某个文件的所有提交记录及修改内容:
git log -p 文件名 # 按 q 退出 -
忽略已提交过的文件若之前误提交了不需要的文件(如日志、缓存),想从版本控制中移除但保留本地文件:
git rm --cached 文件名 # 从暂存区删除,保留工作区文件 # 然后在 .gitignore 中添加该文件,再提交 .gitignore -
拉取远程分支到本地(本地不存在该分支)直接拉取并创建与远程同名的本地分支:
git checkout -b 分支名 origin/分支名 -
强制推送本地修改到远程(谨慎使用)当本地回退版本后,远程版本比本地新,需强制覆盖远程(多人协作时可能覆盖他人提交,慎用):
git push -f origin 分支名

浙公网安备 33010602011771号