git init:初始化一个空的repo。
git add:添加文件跟踪(或称为索引)。如果文件已经被索引(indexed),并且有改动,使用该命令作用于该文件,这个步骤叫update,只有update之后的文件改动才能被提交。
git add -u: update所有的已索引文件的改动,如果某个已索引文件被删除了,那么删除该文件索引。
git add -A: 包括所有-u功能,并为所有新增文件添加索引。
git rm:删除文件跟踪并且删除文件。加--cached则只删除文件跟踪不删除文件。
git commit:提交所有进行过更新的改动。
git的check in过程分两步:
1.添加跟踪或者更新已经被git跟踪的文件.
命令:git add filename。如果文件是第一次add,则称为添加跟踪(add to index)。如果文件已经添加过跟踪,有所改动后调用该命令则称为更新。
2.提交
命令:git commit
实例1:添加文件,修改文件并check in到repo
mkdir git-repo
cd git-repo
git init
echo "file1">file1 //此时目录下有文件file1,但并没有被git跟踪,git还不能管理该文件。
git add file1 //第一次add该文件,将file1添加到git跟踪。
git commit //提交刚才的添加,之后repo中存储有该文件。
echo "something new to file1">file1 //修改file1
git diff //可以看到repo中和目录中file1的差别,git diff比较的是跟踪列表中的文件和文件系统中文件的差别。
git add file1 //更新已经被git跟踪的文件file1,这是commit的前提。
git commit //提交更新,之后,file1的修改进入到repo。
实例2:删除文件,删除文件跟踪
接着上面的状态,此时我们想从工程中删除file1,以后git再也不用管理该文件:
方法1:
git rm file1 //删除文件跟踪并且删除文件系统中的文件file1
git commit //提交刚才的删除动作,之后git不再管理该文件。
方法2:
git rm --cached file1 //删除文件跟踪但不删除文件系统中的文件file1
git commit //提交刚才的删除动作,之后git不再管理该文件。但是文件系统中还是有file1。