GIT ADD
Git Add 是一个多功能命令行。
用途
1. 开始跟踪新文件(begin tracking)
文件会有两种状态,一种是未跟踪的untracked,表明Git并不知道它的存在;另一种是tracked,是Git知道它的存在的。而已经tracked 的文件又可以有其他三种状态:未修改unmodified,已修改modified 和已暂存staged。
2. 将已跟踪文件放到暂存区(stage file)
3. 合并时将有冲突的文件标记为已解决的状态。
注意事项:
运行git add 后又修改了的文件,会在git status中同时显示两种状态,to be commited 还有unstaged。需要重新运行git add 将修改提交,否则commit后只能显示上次修改的结果,而不是最新修改的结果。
假如文件已经被追踪过,然后又修改了,可以跳过staged区,可以一步到位committed。但是容易将不必要的文件一并添加,需要谨慎使用:
git commit -a -m "备注信息"
GIT RM
本质:将文件从暂存区移除,不再被Git跟踪。
用途:
1.手动删除目录中的一份文件后,需要将它从Git的已跟踪清单中移除,即在Git的工作目录中删除指定文件,不会出现在未跟踪清单中。
#手动删除后,会在unstage中出现
rm file1
#利用git删除后会在to be commited中出现
git rm file1
2.将文件从git 仓库中删除,即暂存区移除,但仍保留在当前工作目录中,即仍保留在磁盘中,不被Git继续跟踪。
git rm --ached file1
3. 删除文件/目录名称
比如删除log目录下的拓展名为 .log的文件,注意反斜杠\是Git自己特有的文件模式拓展匹配方式
git rm log/\*.log
比如删除当前目录下的以~结尾的文件
git rm \*~
GIT MV
Git mv 在学会使用后会更加省事,它同时实现了三个步骤。
比如 git mv file1 file2
实际上等于
mv file1 file2
git rm file1
git add file2
GIT BRANCH
# 创建分支
git branch branch1
在Git里,当你复制或者初始化一个仓库后,git 会有默认的分支为main/master,但是它与其他分支并没有等级区别,所有的分支在Git都是平行的。
#新建并进入到分支1
git checkout -b branch1
#进入分支main
git checkout main
Git可以自由切换分支,在分支中的工作不会影响到另一个分支,除非使用merge,这是可能会产生矛盾,假如对同个文件进行修改,但是修改内容不一样。
之所以我们经常会把其他分支,比如branch1, merge到main里,主要是为了保持项目的稳定性。具体而言,就是我们可能很少修改main的内容,main的指针会停留在这个项目的旧版本上,或者可以认为是已经发布的经过测试后稳定性比较好的那个版本。而其他分支由于测试修补bug或者开发新功能,会发展得比较快,但是稳定性没有main好,我们只有在分支上确定好了稳定性之后,才会merge到main,这样的话,Git 会保留branch1 的快照 和main的快照,同时会在合并后的父文件保留快照。
GIT PULL, GIT FETCH
git pull , git fetch 两个操作容易混淆。
git fetch 是从远程分支直接抓取更新,但不会直接融入到当前分支中。
git pull 实现git fetch + git merge 两个操作。