首先说一句,git跟踪并管理的是修改,而非文本。
这里有一个简化的图,有助于更好的操作git。
这里有一些常用的命令,总结一下,以便日后查看。
git log
查看commit记录。
git reset --hard HEAD^
: 用于回退到某个commit
git reflog
: 查看命令历史,以确定回到未来的哪个版本
git checkout --filename
:当改乱了工作区某个文件的内容,想直接丢弃工作区的修改,可以用这个命令。
1.git reset HEAD filename
2.git checkout --filename
上面这两步一起使用:不但改乱了工作区某个文件的内容,还添加到暂存区,想丢弃修改。
git reset --hard HEAD^^
:
已经提交commit到了版本库,想要撤销本次修改(前提是没有推送到远程仓库)
git remote add origin
远程仓库的地址:将本地的仓库与github的仓库想关联。
git fetch
命令只是将远端的数据拉到本地仓库,并不自动合并到当前工作分支,确定好了,自己手工合并git merge
git clone
克隆一个仓库,会自动将远程仓库归于origin下,git fetch origin 会抓取从你克隆以来别人上传到远程仓库中的所有更新。初次克隆某个仓库的时候,工作目录中的所有文件都属于已跟踪文件,且状态为未修改,在编辑过某写文件之后,Git将这些文件标为已修改。还有克隆之后,本质上自动创建本地master分支用于跟踪远程仓库中的master分支。
git diff
:比较工作目录中当前文件和暂存区域中快照之间的差异
git diff --cached
查看已经暂存起来的文件和上次提交的时候的快照之间的差异
注意:从git中移除某个文件,必须从暂存区中移除,然后提交。
git rm
:从工作目录中删除指定的文件,以后就不会出现在未跟踪文件清单中。
git rm --cached readme.txt
移除跟踪但不删除文件
git remote show [remote-name]
: 查看远程仓库详细信息
git remote rm
:删除远程仓库,当然不止这一种方法。
git branch [branch-name]
:创建一个分支,但不会切换到此分支下,还是在master分支下。
git checkout [branch-name]
: 切换分支(注意:最好保持一个清洁的工作区域之后再切换分支)