ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Git安装配置使用详解:从零到一彻底搞懂版本控制

Git安装配置使用详解:从零到一彻底搞懂版本控制 1. Git 安装配置使用详解从零到一把版本控制这件事彻底搞明白1.1 为什么你绕不开 Git如果你写代码或者哪怕只是跟代码沾点边Git 这个名字你一定不陌生。它就是一个分布式版本控制系统说白了就是帮你把文件每一次的改动都记录下来让你随时可以回到任何一个历史版本也能让多个人同时改同一份代码而不至于互相覆盖。你可能会想我手动复制文件夹加个日期不也能备份吗能但当你面对几十个文件、多个分支、多人协作的时候手动备份就是一场灾难。Git 解决的正是这个问题它让版本管理变得自动化、可追溯、可协作。这篇文章适合谁看如果你是刚接触编程的新手或者一直用图形化工具但想搞懂命令行到底在干什么又或者你之前装过 Git 但配置总是出问题那这篇内容就是为你准备的。我会从下载安装开始一步步讲到配置、常用命令、分支管理、远程仓库对接以及那些你大概率会踩的坑。不绕弯子直接上干货。1.2 安装之前先想清楚你要用哪种方式跟 Git 打交道在动手安装之前有一个问题值得先想明白你打算怎么用 Git这直接决定了你安装什么、怎么配置。常见的有三种方式纯命令行安装 Git 本体用终端或 Git Bash 操作。最灵活也最能理解 Git 的工作原理。图形化客户端比如 TortoiseGit俗称小乌龟、SourceTree、GitKraken 等。适合不习惯命令行的朋友但底层还是调用 Git。IDE 集成IntelliJ IDEA、VS Code、CLion 等编辑器都内置了 Git 支持。日常开发最省事但遇到复杂操作还是得回到命令行。我的建议是不管你用不用图形化工具Git 本体一定要装命令行一定要会基本操作。因为图形化工具能帮你做的事命令行都能做但命令行能做的事图形化工具不一定有入口。而且当你遇到冲突、需要回滚、需要查看历史的时候命令行往往是最快的方式。2. Git 下载与安装Windows、macOS、Linux 三平台实操2.1 Windows 平台安装每一步都给你说明白Windows 是大多数人接触 Git 的第一个平台。下载地址就是 Git 官网打开之后首页就能看到 Windows 版本的下载按钮点击下载对应你系统位数的安装包现在基本都是 64 位。下载完成后双击运行接下来就是安装向导。安装向导里有几个关键步骤需要你留意选择安装路径默认是C:\Program Files\Git建议不要改除非你的 C 盘空间实在紧张。路径里不要有中文和空格这是很多工具的通病Git 虽然对中文路径的兼容性比以前好很多但为了避免不必要的麻烦还是用纯英文路径最稳妥。选择组件这里有一堆勾选项我挑几个重要的说。Windows Explorer integration建议勾上这样你在文件夹里右键就能看到 Git Bash Here 和 Git GUI Here非常方便。Git Bash Here是我用得最多的功能之一直接在某个目录下右键打开命令行省去了 cd 半天的麻烦。Associate .git* configuration files with the default text editor这个看个人习惯如果你有喜欢的编辑器可以勾上。其他保持默认即可。选择默认编辑器安装向导会让你选 Git 默认使用的编辑器比如 Vim、Nano、VS Code 等。如果你不熟悉 Vim千万别选它否则当你需要输入提交信息的时候会一脸懵——Vim 的退出方式是按 Esc 然后输入:wq回车很多人第一次用会卡在这里。建议选 Nano 或者你熟悉的编辑器。当然这个后续可以通过命令修改。调整 PATH 环境这一步很关键。安装向导会给你三个选项Use Git from Git Bash only只在 Git Bash 里用、Git from the command line and also from 3rd-party software推荐、Use Git and optional Unix tools from the Command Prompt会把 Unix 工具也加进去可能覆盖 Windows 自带命令。选第二个这样你在 CMD 和 PowerShell 里也能直接用 git 命令。HTTPS 传输后端选Use the OpenSSL library就行这是最通用的。行尾符号转换这个选项经常被忽略但很重要。Windows 用 CRLF 作为换行符而 Linux/macOS 用 LF。选Checkout Windows-style, commit Unix-style line endings是最稳妥的方案它会自动帮你转换避免跨平台协作时出现整个文件都显示被修改的情况。终端模拟器选Use MinTTY就行比 Windows 自带的 CMD 好用很多支持更多的终端特性。其他选项Enable file system caching建议勾上能提升性能。Enable Git Credential Manager也建议勾上这样你连接远程仓库时不用每次都输密码。安装完成后在任意文件夹右键如果能看到Git Bash Here就说明安装成功了。打开 Git Bash输入git --version如果显示出版本号那就没问题。2.2 macOS 平台安装三种方式任你选macOS 上装 Git 其实更简单因为系统自带了一个 Git但版本可能比较老。如果你只是偶尔用用自带的够用但如果你要长期开发建议装一个新版本的。方式一通过 Xcode Command Line Tools。在终端输入xcode-select --install系统会弹窗提示你安装命令行工具其中就包含 Git。这是最省事的方式但版本更新依赖于系统更新。方式二通过 Homebrew。如果你已经装了 Homebrew直接brew install git就行。这是我最推荐的方式版本新更新也方便brew upgrade git就能升级。方式三下载官方安装包。Git 官网也提供 macOS 的安装包下载后双击安装即可。不过这种方式后续升级需要手动操作不如 Homebrew 方便。安装完成后打开终端输入git --version验证。如果显示的版本和你安装的一致就说明没问题。如果显示的还是系统自带的旧版本可能需要调整 PATH 的优先级把/usr/local/bin或/opt/homebrew/bin放在/usr/bin前面。2.3 Linux 平台安装一条命令搞定Linux 上安装 Git 是最直接的不同发行版的命令略有不同Debian/Ubuntusudo apt update sudo apt install gitCentOS/RHELsudo yum install git或sudo dnf install gitFedorasudo dnf install gitArch Linuxsudo pacman -S git安装完成后同样用git --version验证。Linux 上一般不需要额外配置 PATH因为包管理器会自动处理好。注意在 CentOS 7 上默认的 yum 源里的 Git 版本可能比较老比如 1.8.x如果你需要新版本可以考虑通过源码编译或者添加第三方源来安装。不过对于日常使用老版本也基本够用。3. Git 初始配置装完不配等于白装3.1 必须配置的三项用户名、邮箱、默认分支Git 安装完成后第一件事就是配置用户名和邮箱。这两个信息会出现在你每一次的提交记录里是标识“谁提交了这次改动”的依据。命令很简单git config --global user.name 你的名字 git config --global user.email 你的邮箱这里的--global表示全局配置对当前用户的所有仓库生效。如果你某个项目想用不同的名字或邮箱可以在那个项目目录下不加--global重新配置这样只对当前仓库生效。还有一个建议配置的是默认分支名。Git 新版本已经支持自定义初始分支名了你可以这样设置git config --global init.defaultBranch main为什么建议设成 main因为 GitHub 等平台已经把默认分支从 master 改成了 main提前统一可以避免一些不必要的混淆。当然如果你所在团队还在用 master那就保持 master团队统一最重要。3.2 提升体验的几项配置别名、颜色、换行符除了必配项还有几个配置能显著提升你的日常体验。开启颜色显示git config --global color.ui auto这样git status、git diff等命令的输出会带颜色可读性大大提升。配置别名Git 的命令有时候比较长配置别名可以省不少事。比如git config --global alias.st status git config --global alias.co checkout git config --global alias.br branch git config --global alias.ci commit git config --global alias.lg log --oneline --graph --all这样你输入git st就等于git status输入git lg就能看到漂亮的提交历史图。别名这东西因人而异你可以根据自己的习惯来配。换行符处理前面安装时已经选过了但如果你需要修改可以用git config --global core.autocrlf true # Windows git config --global core.autocrlf input # macOS/Linux查看所有配置git config --list可以列出当前所有生效的配置方便你检查有没有配错。3.3 配置 SSH 密钥跟远程仓库安全通信如果你要用 GitHub、Gitee、GitLab 等远程仓库配置 SSH 密钥是绕不开的一步。SSH 密钥是一对包含公钥和私钥公钥放到远程仓库私钥留在本地这样通信时就不需要每次输入密码了。生成密钥的命令ssh-keygen -t rsa -b 4096 -C 你的邮箱-t rsa指定密钥类型-b 4096指定密钥长度-C后面跟注释一般用邮箱。执行后会提示你选择保存路径默认是~/.ssh/id_rsa直接回车即可。然后会问你要不要设置密码短语如果设了每次使用密钥时都需要输入这个短语如果不设直接回车就行。从安全角度建议设一个但从便利角度不设也行看你的使用场景。生成完成后你需要把公钥~/.ssh/id_rsa.pub的内容复制到远程仓库的 SSH 密钥设置里。查看公钥内容的命令cat ~/.ssh/id_rsa.pub复制输出的全部内容粘贴到远程仓库的对应位置即可。然后可以用ssh -T gitgithub.com以 GitHub 为例来测试连接如果看到欢迎信息就说明配置成功了。注意私钥文件id_rsa绝对不能泄露给任何人也不要上传到任何仓库。公钥id_rsa.pub才是可以公开的。4. Git 日常使用从 init 到 push 的完整流程4.1 创建仓库与基本工作流Git 的基本工作流其实就四步修改文件、暂存改动、提交改动、推送到远程。我们先从创建仓库开始。初始化仓库在项目目录下执行git initGit 会创建一个隐藏的.git目录所有版本信息都存在这里。这个目录不要手动去改否则可能把仓库搞坏。克隆远程仓库如果项目已经在远程仓库里了用git clone 仓库地址就能把整个仓库拉到本地包括所有历史记录。仓库地址可以是 HTTPS 的也可以是 SSH 的。SSH 的需要先配好密钥HTTPS 的每次推送可能需要输入账号密码除非配了凭据管理器。查看状态git status是你用得最频繁的命令之一。它会告诉你当前有哪些文件被修改了、哪些已经暂存了、哪些还没被跟踪。养成经常查看状态的习惯能避免很多误操作。暂存改动git add 文件名把指定文件的改动放入暂存区。如果想暂存所有改动用git add .或git add -A。暂存区是 Git 一个很重要的概念它让你可以精确控制每次提交包含哪些改动而不是一股脑全提交上去。提交改动git commit -m 提交信息把暂存区的内容提交到本地仓库。提交信息要写清楚这次改了什么、为什么改不要写“修改”“更新”这种没信息量的内容。好的提交信息能让未来的你和你的同事少掉很多头发。推送到远程git push把本地提交推送到远程仓库。如果是第一次推送某个分支可能需要git push -u origin 分支名来建立追踪关系之后就可以直接git push了。4.2 分支管理Git 最强大的功能之一分支是 Git 的杀手锏。你可以在不影响主分支的情况下开一个新分支去开发新功能或修 bug完成后再合并回去。这样主分支始终保持稳定可用。创建分支git branch 分支名创建新分支git checkout 分支名切换过去。更简洁的方式是git checkout -b 分支名创建并切换一步到位。新版本的 Git 推荐用git switch -c 分支名来替代 checkout语义更清晰。查看分支git branch列出本地分支git branch -a列出所有分支包括远程的。当前所在的分支前面会有一个星号。合并分支先切换到目标分支比如 main然后git merge 要合并的分支名。如果两个分支没有冲突Git 会自动完成合并如果有冲突需要手动解决后再提交。删除分支git branch -d 分支名删除已合并的分支git branch -D 分支名强制删除未合并的分支。删除前确认一下这个分支的工作是否已经合并否则可能丢失改动。解决冲突冲突是多人协作中不可避免的。当两个人改了同一个文件的同一部分Git 就不知道该保留谁的改动了。这时候git status会告诉你哪些文件有冲突打开这些文件你会看到、、这样的标记把不需要的部分删掉保留正确的内容然后git add标记为已解决最后git commit完成合并。4.3 远程仓库对接GitHub、Gitee、GitLab 都适用远程仓库是你和团队协作的枢纽。不管用的是 GitHub、Gitee 还是自建的 GitLab基本操作都是一样的。添加远程仓库git remote add origin 仓库地址。origin是远程仓库的默认名字你可以改成别的但一般没必要。查看远程仓库git remote -v列出所有远程仓库及其地址。拉取远程改动git pull相当于git fetch加git merge把远程的改动拉下来并合并到当前分支。如果只想拉取不合并用git fetch。推送本地改动git push把本地提交推送到远程。如果远程有你本地没有的提交推送会被拒绝这时候需要先git pull合并远程改动再推送。修改远程仓库地址git remote set-url origin 新地址。有时候仓库迁移了或者你从 HTTPS 换成了 SSH就需要改地址。提示如果你在国内访问 GitHub 速度不理想可以考虑用 Gitee 作为远程仓库操作方式完全一样。或者配置 Git 的代理但这里不展开讲因为涉及网络配置的内容比较敏感大家根据自己情况处理即可。5. 常见问题与排查技巧实录5.1 安装与配置阶段的典型问题问题一git命令找不到。这通常是因为安装时 PATH 没配好。Windows 上重新运行安装程序确保选了Git from the command line and also from 3rd-party software。macOS/Linux 上检查 PATH 是否包含 Git 的安装路径。问题二提交时提示Please tell me who you are。这说明你没配用户名和邮箱按照前面 3.1 节的命令配置一下就行。问题三SSH 连接测试失败。先确认公钥是否正确添加到了远程仓库然后用ssh -vT gitgithub.com查看详细日志根据日志定位问题。常见原因包括密钥文件权限不对chmod 600 ~/.ssh/id_rsa、远程仓库地址写错、网络不通等。问题四换行符导致整个文件显示被修改。这是跨平台协作的经典问题。检查core.autocrlf配置Windows 设为 truemacOS/Linux 设为 input。如果已经出现了这个问题可以用git add --renormalize .重新规范化。5.2 日常使用中的高频问题问题五提交信息写错了怎么办。如果只是最后一次提交的信息写错了用git commit --amend可以修改。它会打开编辑器让你重新编辑提交信息保存后替换掉上一次提交。注意如果这次提交已经推送到远程了amend 后需要强制推送git push -f这在团队协作中要谨慎使用因为会改写历史。问题六想撤销暂存区的文件。git reset HEAD 文件名把文件从暂存区移出但保留工作区的改动。如果想连工作区的改动也一起撤销用git checkout -- 文件名新版本用git restore 文件名。问题七想回退到某个历史版本。git log查看提交历史找到目标版本的哈希值然后git reset --hard 哈希值回退。但--hard会丢弃工作区和暂存区的所有改动用之前确认没有未保存的工作。如果只是想撤销某次提交但保留改动用git revert 哈希值更安全它会创建一个新的提交来抵消目标提交的改动。问题八git pull时提示有未提交的改动。Git 不允许你在有未提交改动的情况下拉取远程更新因为可能会冲突。解决办法是先提交或暂存你的改动。git stash可以把当前改动暂存起来拉取后再git stash pop恢复。问题九推送时提示failed to push some refs。通常是因为远程有你本地没有的提交。先git pull合并远程改动解决可能的冲突后再推送。问题十不小心把不该提交的文件提交了。如果还没推送用git reset HEAD^撤销提交把文件从暂存区移出然后重新提交。如果已经推送了就需要用git revert或者更复杂的历史改写操作这时候要特别小心最好跟团队沟通后再操作。5.3 独家避坑经验经验一提交前一定要git status和git diff。这两个命令能让你清楚看到自己改了什么、将要提交什么。我见过太多人因为没检查把临时文件、配置文件、甚至密码都提交上去了。养成习惯能省很多事。经验二.gitignore文件要尽早配。在项目初始化的时候就创建.gitignore把不需要版本控制的文件排除掉比如编译产物、依赖目录、IDE 配置文件、日志文件等。如果等到已经提交了才想起来加还需要额外步骤把它们从版本历史中移除。经验三分支命名要有规范。feature/xxx、bugfix/xxx、hotfix/xxx这样的命名方式能让团队成员一眼看出分支的用途。不要用test、temp、aaa这种名字过两天你自己都不记得是干什么的。经验四提交粒度要适中。一次提交只做一件事不要把多个不相关的改动混在一起。这样出问题的时候容易定位回滚的时候也不会误伤。但也不要改一行就提交一次那样提交历史会太碎。经验五定期清理本地分支。合并过的分支及时删掉不然本地分支列表会越来越长找起来费劲。git branch --merged可以列出已经合并到当前分支的分支确认后批量删除。经验六重要操作前先备份。虽然 Git 本身就很安全但像reset --hard、push -f、rebase这类操作还是有一定风险的。操作前可以创建一个临时分支作为备份万一出问题还能找回来。经验七善用git reflog。这是 Git 的“后悔药”。即使你误删了分支或者 reset 错了版本git reflog能显示 HEAD 的所有移动记录找到对应的哈希值就能恢复。这个命令救过无数人的命建议每个人都记住。6. 进阶技巧让 Git 用起来更顺手6.1 工作区暂存git stash 的妙用你正在开发一个功能改了一半突然需要切换到另一个分支去修一个紧急 bug。但当前改动还没完成不想提交怎么办git stash就是为这个场景设计的。git stash把当前工作区和暂存区的改动保存起来让工作区回到干净状态。然后你可以放心切换分支、修 bug、提交、切回来再用git stash pop恢复之前的改动。git stash list可以查看所有暂存的记录git stash apply stash{n}可以恢复指定的暂存。这个功能在多人协作中特别实用因为经常会有“手头的事没做完就要去处理别的事”的情况。6.2 变基与合并rebase 和 merge 怎么选git merge和git rebase都能把一个分支的改动整合到另一个分支但方式不同。merge 会创建一个新的合并提交保留完整的分支历史rebase 会把你的提交“搬”到目标分支的最新提交之后让历史看起来像一条直线。merge 的优点是安全、可追溯缺点是历史图会比较复杂。rebase 的优点是历史干净、线性缺点是会改写提交历史如果在共享分支上使用可能会给其他人造成麻烦。我的建议是本地分支整理用 rebase公共分支合并用 merge。也就是说你在自己的功能分支上开发时可以定期用 rebase 把主分支的最新改动同步过来保持历史整洁但当你把功能分支合并到主分支时用 merge 保留合并记录。6.3 工作树git worktree 解决多分支并行开发有时候你需要在多个分支上同时工作比如一个分支在跑测试另一个分支在改 bug。传统做法是克隆多个仓库但这样比较占空间而且管理起来麻烦。git worktree允许你在同一个仓库下检出多个工作树每个工作树对应一个分支互不干扰。用法也很简单git worktree add ../project-hotfix hotfix就在上级目录创建了一个名为project-hotfix的工作树检出hotfix分支。你可以在那个目录里正常操作提交的改动会反映到同一个仓库里。用完git worktree remove ../project-hotfix删掉就行。这个功能在需要同时处理多个任务时特别有用不用来回切换分支也不用克隆多个仓库。6.4 子模块与子树管理项目依赖的两种方式当你的项目依赖另一个 Git 仓库时可以用子模块submodule或子树subtree来管理。子模块是在你的仓库里记录一个引用指向另一个仓库的某个提交子树是把另一个仓库的内容直接合并到你的仓库里。子模块的优点是引用清晰依赖的仓库保持独立缺点是操作稍复杂克隆时需要额外初始化。子树的优点是使用简单克隆时不需要额外操作缺点是仓库体积会变大依赖的更新需要手动同步。选择哪种方式取决于你的具体需求。如果依赖的仓库是独立的、经常更新的子模块更合适如果依赖的仓库比较稳定、你希望对它有完全的控制子树更方便。7. 图形化工具与 IDE 集成不敲命令也能用 Git7.1 TortoiseGitWindows 上的经典选择TortoiseGit 俗称“小乌龟”是 Windows 上最流行的 Git 图形化客户端之一。安装 TortoiseGit 之前需要先安装 Git 本体然后安装 TortoiseGit它会自动检测 Git 的安装路径。装好之后你在任意文件夹右键就能看到 TortoiseGit 的菜单项比如 Git Clone、Git Commit、Git Log 等。它把常用操作都集成到了右键菜单里用起来很直观。查看日志、对比差异、解决冲突都有图形化界面对不习惯命令行的朋友很友好。不过要注意TortoiseGit 的菜单项比较多刚开始可能会觉得眼花缭乱。建议先熟悉几个核心操作克隆、提交、拉取、推送、查看日志。其他的用到再学。7.2 IDEA 与 VS Code开发时的 Git 集成如果你用 IntelliJ IDEA 或 VS Code 开发它们都内置了 Git 支持日常的提交、拉取、推送、分支切换都可以在编辑器里完成。IDEA 的 Git 集成非常完善底部有 Git 面板可以看到所有改动勾选要提交的文件填写提交信息点击提交即可。分支管理、冲突解决、历史查看都有对应的界面。VS Code 的 Git 集成更轻量左侧源代码管理面板可以完成大部分日常操作配合 GitLens 插件还能看到每一行代码的提交信息。我的建议是日常的提交、拉取、推送用 IDE 集成就够了效率很高但遇到复杂操作比如 rebase、cherry-pick、reflog 恢复等还是回到命令行更靠谱。两者结合使用效率最高。7.3 工具选型的个人建议图形化工具和命令行不是对立的而是互补的。我的使用习惯是日常提交用 IDE 集成快速方便查看历史、对比差异用图形化工具直观清晰复杂操作、问题排查用命令行灵活强大。如果你是新手建议先从命令行学起理解 Git 的基本概念和工作原理然后再用图形化工具提升效率。反过来如果一上来就用图形化工具遇到问题可能不知道底层发生了什么排查起来会比较困难。8. 团队协作中的 Git 规范与最佳实践8.1 分支模型Git Flow 与 Trunk-Based 的取舍团队协作中分支模型的选择很重要。常见的两种是 Git Flow 和 Trunk-Based Development。Git Flow 定义了多种分支类型master 用于发布、develop 用于日常开发、feature 用于功能开发、release 用于发布准备、hotfix 用于紧急修复。这套模型适合版本发布周期较长、需要严格控制的团队。Trunk-Based 则主张所有人都在一个主干分支上开发功能分支生命周期很短通常不超过一天。这套模型适合持续集成、持续部署的团队要求自动化测试和部署流程比较完善。选择哪种模型取决于团队的规模、发布节奏和工程成熟度。没有绝对的好坏适合的才是最好的。小团队、快速迭代的场景Trunk-Based 更合适大团队、严格发布流程的场景Git Flow 更稳妥。8.2 提交信息规范让历史记录可读可查提交信息是团队协作中容易被忽视但很重要的一环。好的提交信息能让代码审查、问题定位、版本回溯都变得更容易。推荐使用 Conventional Commits 规范格式是类型(范围): 描述。常见的类型包括feat新功能fix修复 bugdocs文档改动style格式调整不影响代码逻辑refactor重构test测试相关chore构建、工具、依赖等杂项比如feat(user): 添加用户登录功能、fix(api): 修复分页参数越界问题。这样的提交信息一目了然也方便自动化工具生成变更日志。8.3 代码审查与合并请求合并请求Pull Request / Merge Request是团队协作的核心环节。在把功能分支合并到主分支之前通过合并请求让团队成员审查代码能发现潜在问题也能促进知识共享。提交合并请求时描述要写清楚这个改动解决了什么问题、怎么解决的、有没有需要注意的地方、测试情况如何。审查者要认真看代码提出建设性意见而不是简单地点个通过。合并时要注意选择正确的合并方式。如果功能分支的提交历史比较乱可以用 squash merge 把它们压缩成一个提交如果想保留完整的开发历史用普通的 merge commit。团队内部要统一规范避免混乱。9. 疑难杂症排查那些让你抓狂的 Git 问题9.1 仓库损坏与恢复Git 仓库一般很健壮但偶尔也会出问题比如磁盘故障、意外中断等导致.git目录损坏。遇到这种情况先别慌试试git fsck命令它会检查仓库的完整性并报告问题。如果只是个别对象损坏可以尝试从远程仓库重新克隆。如果本地有未推送的提交可以先git bundle把仓库打包备份然后重新克隆再从 bundle 中恢复。预防胜于治疗定期推送本地提交到远程仓库重要操作前创建备份分支能大大降低仓库损坏带来的损失。9.2 大文件与仓库瘦身Git 不适合管理大文件因为每次改动都会保存完整的历史版本仓库体积会迅速膨胀。如果不小心把大文件提交了即使后来删除了它仍然存在于历史记录中。处理这种情况需要用git filter-branch或BFG Repo-Cleaner这样的工具来重写历史把大文件从所有提交中移除。但这些操作会改写提交哈希影响所有协作者必须谨慎使用操作前要和团队充分沟通。预防措施是在项目开始时就配好.gitignore把大文件、二进制文件、依赖目录排除在外。如果确实需要管理大文件可以考虑 Git LFSLarge File Storage它把大文件存在单独的地方仓库里只保留引用。9.3 跨平台协作的坑跨平台协作时除了前面提到的换行符问题还有几个常见的坑。文件名大小写敏感Linux 和 macOS 默认是大小写敏感的Windows 默认不敏感。如果两个文件只有大小写不同在 Windows 上可能冲突。解决办法是统一命名规范避免仅靠大小写区分文件。文件权限Linux 和 macOS 会记录文件的执行权限Windows 不会。跨平台时可能会出现权限变化导致的 diff。可以通过git config core.fileMode false让 Git 忽略文件权限的变化。路径分隔符Windows 用反斜杠Linux/macOS 用正斜杠。Git 内部统一用正斜杠一般不需要特别处理但在脚本中要注意兼容性。10. 持续学习与资源推荐Git 的功能非常多一篇文章不可能覆盖所有细节。我建议你在掌握基本操作后通过实际项目不断积累经验。遇到问题时git help 命令可以查看官方文档git 命令 --help也可以。官方文档虽然有时候比较晦涩但信息最准确。另外Pro Git 这本书是学习 Git 的经典资料有免费的中文版可以在线阅读。它从基础到进阶都有详细讲解适合系统学习。最后多动手实践是最重要的。Git 是一个工具只有在实际使用中才能真正掌握。开一个自己的练习仓库随便折腾搞坏了就重新克隆慢慢就熟练了。我个人在实际操作中的体会是Git 的学习曲线前期比较陡但一旦理解了暂存区、分支、提交这几个核心概念后面就顺了。刚开始可能会觉得命令多、参数杂但常用的其实就那么十几个用多了自然就记住了。遇到问题不要怕git reflog和git fsck能帮你解决大部分意外情况。最重要的是养成好习惯勤提交、勤推送、提交前先看 status 和 diff。这些习惯能帮你避免绝大多数问题。
返回列表