Git基本操作与常用命令
git init 在目录中创建新的 Git仓库
git add 将该文件添加到缓存。
git commit将缓存区内容添加到仓库中。
git status 查看项目的当前状态。
git diff 显示已写入缓存与已修改但尚未写入缓存的改动的区别。
git reset HEAD 命令用于取消已缓存的内容。
git checkout – file丢弃工作区的修改
git rm将文件从缓存区和你的硬盘中(工作目录)删除
git mv重命名磁盘上的文件
创建版本库
创建版本库之前首先要有一个工作区,工作区即为电脑中所能看到的目录。工作区有一个隐藏目录.git,这个不算工作区,是Git的版本库。里面有暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD
一:选择一个合适的地方,创建一个空目录(方法与linux相同):
$ mkdir learngit
$ cd learngit
二:初始化一个Git仓库,使用git init命令。
三:添加文件到Git仓库,分两步:
第一步,使用命令git add <file>,注意,可反复多次使用,添加多个文件;实际是把修改的文件添加到暂存区
第二步,使用命令git commit,把文件提交到仓库,即当前分支,完成。
git commit –a (提交所有本地修改)
git commit –m “deleted 1 line” (对提交的修改进行描述)
切记在提交时前要git add开始跟踪文件,否则不能commit成功,因为每次修改如果不add到暂存区,那就不会加入到commit中。
月光宝盒穿梭
一、查看当前工作区状态,有没有进行修改git status
可以加入参数git status –s查看简短信息
如果在克隆仓库之后立即执行此命令,会看到类似这样的输出:
这说明你现在的工作目录相当干净。换句话说,所有已跟踪文件在上次提交后都未被更改过。此外,上面的信息还表明,当前目录下没有出现任何处于未跟踪的新文件,否则 Git会在这里列出来。 master这是默认的分支名称。
二、 如果git status显示文件被修改过,查看修改内容用git diff
·尚未缓存的改动:git diff
·查看已缓存的改动: git diff --cached
·查看已缓存的与未缓存的所有改动:git diff HEAD
·显示摘要而非整个 diff:git diff --stat
三、修改与提交新文件步骤是一样的,git add --->git commit
四、查看提交历史,以确定要回退到哪个版本git log
也可以通过添加参数来查看简洁的日志信息git log-–pretty=oneline
五、历史与未来穿梭
在git中用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。例如现在有1、2、3三个版本,3是最新的。
要从3回退到上一个版本2:git reset--hard HEAD^
从2再回到之后的版本3:git reset –hard*****(3的commit ID号前几位便可)
如果不记得3版本的ID号可以通过git reflog查看命令历史,或者通过git log查看,找到其ID号
六、撤销修改;
(1)丢弃工作区的修改git checkout – file
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。
(2)已经git add但没有commit,即已经放入暂存区。
撤销掉暂存区的修改,重新放回工作区:git resetHEAD file然后再执行上一步。
七、删除文件;
(1)rm file或者直接手动在文件管理器中删除
(2)从版本库中删除该文件git rm file然后git commit
git rm file 会将文件从缓存区和你的硬盘中(工作目录)删除。
如果你要在工作目录中留着该文件,可以使用 git rm --cached
(3)删错,但版本库里有,把误删文件恢复到最新版本git checkout –file
(4)git mv命令做得所有事情就是 git rm--cached 命令的操作, 重命名磁盘上的文件,然后再执行 git add 把新文件添加到缓存区。
$ git mv README README.md
$ ls
README.md