Git基本用法

Git基本用法

💡 原文中文,约9800字,阅读约需24分钟。
📝

内容提要

本文介绍Git的基本用法,涵盖文件状态检查、提交历史查看、撤销操作、远程仓库管理、标签创建与分享、分支的创建合并及冲突处理、变基操作,以及别名和储藏等实用技巧,旨在帮助用户掌握Git的核心功能。

🔎

延伸解读

理解Git的撤销与恢复边界

文章强调,Git中已提交的内容基本都可以恢复,但未暂存的修改不属于Git恢复的范畴。这意味着,使用git checkout -- <file>撤销修改时,该文件自上次提交以来的所有改动都会丢失,且无法通过Git找回。因此,在执行此类操作前,应确认修改是否重要,或考虑先用git stash保存进度。理解这一边界有助于避免误操作导致的数据丢失。

变基与合并的选择

文章指出,变基和合并都能整合分支,但变基能保持提交历史的简洁。然而,变基存在风险:一旦分支被推送到公共仓库,就不应再对其变基,否则会迫使其他开发者重新整合提交,带来不必要的麻烦。因此,在团队协作中,应优先使用合并来整合公共分支,而变基更适合用于本地未推送的分支整理。

远程分支跟踪与推送的细节

文章介绍了远程分支的跟踪机制:git fetch会更新远程跟踪引用,但不会自动合并;git pull则相当于fetch加merge。推送时,git push origin test等价于git push origin test:test,会自动展开为refs/heads/test:refs/heads/test。理解这些细节有助于避免因远程分支状态不同步而导致的冲突,尤其是在多人协作时,应明确fetch与pull的区别,并合理使用跟踪分支。

Q&A

如何查看Git仓库中文件的修改状态?

使用`git status`可以查看已提交和未提交的修改,`git diff`查看未暂存的修改,`git diff --staged`查看已暂存的修改。

Git中如何撤销对文件的修改?

使用`git checkout -- <file>`可以撤销对文件的修改,但该操作会丢失所有未提交的更改,需谨慎使用。

如何创建和推送Git标签?

创建附注标签使用`git tag -a <tagname> -m "message"`,轻量标签直接`git tag <tagname>`。推送标签到远程仓库使用`git push origin <tagname>`,推送所有标签使用`git push origin --tags`。

Git中如何处理合并冲突?

当合并冲突发生时,Git会暂停并等待解决。使用`git status`查看冲突文件,手动编辑解决冲突后,用`git add`标记为已解决,然后继续合并。

Git中变基(rebase)和合并(merge)有什么区别?

合并是将两个分支的修改整合,产生一个合并提交;变基是将一个分支的提交在另一个分支上重放,使历史更线性。变基可以保持提交历史简洁,但不应在公共仓库的分支上使用。

如何设置Git命令别名?

使用`git config --global alias.<别名> <命令>`,例如`git config --global alias.co checkout`,之后可用`git co`代替`git checkout`。

Git中如何储藏(stash)当前工作进度?

使用`git stash`保存当前工作状态,`git stash list`查看储藏列表,`git stash apply`恢复最近储藏,`git stash pop`恢复并删除储藏。

🏷️

标签

➡️

继续阅读