git操作三- 解决冲突,删除文件,查看版本间更改了什么内容
问题我本地的main分支有个审批.docx的文档怎么合并到我本地的seri分支。涉及命令git branchgit log --oneline --graphgit fetch命令作用能看到提交历史能看到本地 / 远程关系git branch -vv看状态、看同步❌ 不能✅ 能git log --graph看提交历史、看图✅ 能❌ 不能不加 --allgit 名词英文中文含义working tree工作区你当前编辑的代码index暂存区git add 后的区域tree版本树提交的历史版本blob文件对象Git 里的文件changes差异 / 改动不同的地方名称官方英文作用存放什么生命周期暂存区Index / Stage提交前的临时存放git add 后的文件会被 git commit 永久提交掉储藏区Stash临时切走、保存未完成代码未 add、已 add、未提交的所有代码手动 git stash pop 才会恢复问题分析本地有两个分支• main包含修改后的 每日临时思考记录/git配置协作者审批.docx• seri需要合并 main 分支的这个文档变更推荐方案合并 main 到 seri 分支切换到 seri 分支运行git checkout seri合并 main 分支到 seri运行git merge main•这个命令会把 main 分支的所有提交包括你修改的 .docx 文件合并到 seri 分支• 如果没有冲突Git 会自动完成合并• 如果有冲突手动解决后执行 git add 和 git commit 即可。备选方案只合并单个文件如果不想合并全部提交如果你只想把 main 分支的这个文档单独拿到 seri 分支而不是合并所有提交可以用 git checkout 提取文件运行git checkout seri从 main 分支检出目标文件路径要和 git status 里一致运行git checkout main – “每日临时思考记录/git配置协作者审批.docx”提交到 seri 分支运行git add “每日临时思考记录/git配置协作者审批.docx”git commit -m “从 main 分支合并审批文档到 seri”扩展git merge 和 git checkout – file 这两种方式的区别问题分析git merge main 的核心逻辑是将「本地的 main 分支」合并到「当前所在的本地 seri 分支」和「远端的 main 分支」没有直接关系。git merge main 的精准含义• 操作范围仅在本地仓库内执行不涉及任何远程仓库远端 main 分支的内容不会自动参与• 合并逻辑把「本地 main 分支的最新提交」合并到「你当前 checkout 的分支这里是 seri」• 类比理解就像你有两个本地文件夹main 文件夹、seri 文件夹git merge main 是把 main 文件夹里的最新修改同步到 seri 文件夹里。关键区分本地 main vs 远端 main命令合并的分支来源适用场景git merge main本地 main 分支你已经把远端 main 的内容拉到本地想把本地 main 的修改合并到本地 serigit merge origin/main远端 main 分支origin 是远程仓库别名 不想先更新本地 main直接把远端 main 的最新内容合并到本地 seri确保合并的是「远端最新的 main 内容」到本地 seri正确步骤是先更新本地 main 分支拉取远端 main 的最新内容git checkout maingit pull origin main把远端 main 同步到本地 main** 切回 seri 分支**git checkout seri** 合并本地 main已同步远端到 seri**git merge main补充说明避坑合并前先拉取如果你的本地 main 分支不是最新的比如远端 main 有其他人提交的内容直接 git merge main 只会合并「本地旧的 main 内容」而非远端最新冲突处理如果 seri 分支和 main 分支修改了同一个文件比如你的审批.docxGit 会提示冲突你只需要打开冲突文件手动保留需要的内容执行 git add 冲突文件 → git commit 完成合并总结git merge main 仅合并本地 main 分支到当前本地 seri 分支和远端无关若要合并远端 main 到本地 seri需先 git pull origin main 更新本地 main再执行 merge核心逻辑merge 操作的对象是「本地分支」远程分支需先拉取到本地才能参与合并。git删除仓库中的文件本地删除文件 提交到 Git一步到位。最常用、最推荐的命令直接删文件 提交运行git rm 文件名git commit -m “删除不需要的文件”git pushgit rm 文件名→本地文件删掉 Git 也记录删除git commit→ 把删除操作保存成一个版本git push→ 把删除同步到远程GitHub/GitLab/Gitea如果你已经手动把文件删了右键删除那就用这个git add -ugit commit -m “删除文件”git pushgit add -u 会自动把所有已删除的文件记录到 Git 里删除文件夹目录git rm -r 文件夹名git commit -m “删除文件夹”git push只想让 Git 不再追踪但保留本地文件git rm --cached 文件名这个不会删你电脑上的文件只是Git 不再管它。总结想彻底删文件git rm 文件名已经手动删了git add -u删文件夹git rm -r 文件夹只取消追踪、保留文件git rm --cached 文件名、、、、、、、、、、、、、、、、、、、、、、、查看某个版本 和 它前一个版本的差异本地删除文件 提交到 Git一步到位。最常用查看具体修改了哪些代码运行git show 版本号作用自动对比 这个版本 和 前一个版本直接显示改了哪些文件、加了什么、删了什么如git show 6dcceda1f07337eaf0aee6754ccbe55982421e15只看修改了哪些文件不看代码细节那就用这个git show --stat 版本号输出干净整洁几个文件被修改增加多少行删除多少行如果你想看当前最新版本 vs 上一版git show不加任何版本号默认就是当前最新版本 vs 前一个版本另一个经典对比命令效果一样git diff 版本号^ 版本号^ 代表前一个版本git branch -vv作用看当前所有分支的同步状态本地落后超前分叉和远程对没对齐什么时候最实用每天上班第一件事看哪些分支要同步想知道自己当前分支能不能 push想知道本地和远程差几个提交git log --oneline --graph作用看完整的提交树、分叉、合并历史什么时候用push 被拒绝查分叉原因解决冲突后看历史想知道分支到底发生了什么排查 Git 问题必用总结看详细代码修改git show 版本号看修改了哪些文件git show --stat 版本号看当前最新版改了啥git show终极真理凡是涉及远程必须先 fetch。这一步是 “刷新”就像你看网页要刷新看文件要刷新一样只要你想知道远程有没有新代码我能不能 push我要不要 pull本地和远程同步了吗必须先执行你本地的 origin/seri、origin/main 都是 “旧照片”只有 git fetch 才能把它变成实时直播不 fetch → 你看到的是缓存数据fetch 后 → 你看到的是服务器真实数据不 fetch 就操作等于闭着眼睛开车一定翻车所有操作都应该按这个顺序fetch刷新git fetch查看状态判断要干嘛git branch -vv或git status决定pull /merge/rebase /pushgit fetch 刷新远程状态必须git branch -vv 看有没有人更新代码git pull --rebase 有更新就拉下来没有也可以执行更新填写代码git add .git commit -m “提交”git push 推上去本地分支 vs 远程分支fetch 是刷新branch -vv 是看同步状态log --graph 是看历史能不能 push 只看自己的分支先 fetch 再操作 永不翻车
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2560529.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!