仓库与三个区域
建一个或一个,并分清、、仓库这三个地方。分不清这三者,后面的命令都会让你晕。
学习目标
- 能把一个空文件夹变成仓库
- 能把别人的仓库克隆到本地
- 能画出文件在三个区域之间怎么移动
得到仓库有两条路:git init 把你现在的文件夹变成仓库,git clone 把已有的仓库整个搬下来。两种做法都会在文件夹里生成一个隐藏的 .git 目录。这个目录就是仓库本体,所有历史和配置都在里面。删掉它,历史全没;只要留着它,过的文件随时能还原(没提交的改动还原不了)。
用 时,心里要始终清楚文件此刻在哪个区。工作区是你在里看到的真实文件。暂存区(index)是「这次提交要带上的东西」的候车室。仓库是提交之后被钉进历史的地方。文件靠 add 从工作区进暂存区,靠 commit 从暂存区进仓库。
中间多这一层,是为了让你能挑着提交。哪怕改了五个文件,也可以只挑出相关的两个凑成一次提交。正是这个能力,让日后的历史读起来清楚,出问题时能迅速找到罪魁提交。
轻松理解
想象一下出门旅行前收拾行李。工作区是衣服扔得到处都是的房间,暂存区是打开的行李箱,只放你挑好的东西,仓库是贴好名签、封好的箱子。git add 是把东西放进行李箱,git commit 是把箱子封好。
本步骤要掌握的命令
别光用眼睛看,去里真敲一遍。手记住了,工作时才使得出来。
git init- 把当前文件夹变成新仓库,会生成
.git。 git clone <URL>- 把整个克隆下来,历史也一并带过来。
git status- 显示三个区域的当前状态。卡住了,永远先敲这条。
ls -a- 连隐藏文件一起列出来,亲眼确认
.git真的在。
常见错误和改正方法
在错误的文件夹里运行 git init,比如主目录,结果它下面的所有文件都被装进了仓库。先用 pwd(显示当前所在文件夹的命令)确认自己在哪里。如果已经这样了,就在那个文件夹里运行 rm -rf .git,只删掉在那里生成的 .git 文件夹,你自己的文件都会原样保留。
这一栏由你自己标记,这里不打分。
要把这一阶段标记为已理解吗?
目前还不能取消,请在真正理解后再标记。
已标记为理解
这一栏由你自己标记,这里不打分。