本地git的基本命令
我们这节只关心本地仓库,和远程仓库无关
建立本地仓库
git init
在当前文件建立git本地仓库
将文件添加到暂存区(用于之后添加到本地仓库),此时文件就被加入了版本控制,状态由Untracked 改变为Tracked
git add 文件名
git add . //全部加入
将文件添加到暂存区(用于之后添加到本地仓库),此时文件就被加入了版本控制,状态由Untracked
提交到本地仓库
git commit -m "备注信息" /*备注信息用于说明修改了什么*/
将暂缓区的文件提交到本地仓库,commit命令返回的包含两个信息:几个文件被改动,新插入了几行。
add可以多次提交文件到暂存区,而commit用于把暂存区的文件全部提交到本地仓库
查看修改内容
git status
用于查看文件状态
- Untracked:本地.git所在的目录的普通文件,不受git管理
- Staged :已被add的暂存区文件
- Unmodified :已被Commit的文件
- Modified : 被commit的文件被修改,此时的文件修改只是在本地工作区,需要再次add到暂存区,然后commit
git diff 文件名
用于比较文件在暂存区和本地工作区的差异
git diff HEAD -- 文件名
查看工作区和版本库里最新版本的区别
git log
查看文件版本的修改历史
时光机回溯
回退git版本
这个回退版本是文件已经都commit了,在git仓库有了一个新版本了,我要回到上个commit版本,这样的情况下采用的操作
git reset --hard Head^
将本地文件回退到git仓库的版本上一个
如果要再从过去回来,那就不能再用Head了,此时要用到版本号。如果知道了commit时的id,就可以通过以下命令回到该版本
git reset --hard [commit id]
commit id也可用’git reflog’显示命令的历史记录来查找。
回退工作区文件
此时是本地文件改了还保存了,但我现在后悔了那些修改操作了,此时我还没有add操作,也就是说,我现在只需要把暂存区的文件覆盖到我的本地文件就好了
git checkout -- 文件名
用上面的命令就可以把文件恢复到暂存区当初的样子
回退暂存区文件
git reset HEAD 文件名
git checkout -- 文件名
就是文件已经add到暂存缓冲区了,但是还没有commit,此时checkout肯定已经没用了,这个时候就需要用reset进行版本回退了,但是这个回退只是把对应文件的版本重新回退到暂存区,还要用checkout实现丢弃修改。
其实只要恢复的版本在git里,就用reset,只要在暂存区,就用checkout 这样就可以了。
删除文件
我们会发现github是不能够删除仓库的文件的,只能先从本地修改。
git rm 文件名
这样将会删除本地仓库的文件
远程仓库命令
远程仓库如github就是提供一个git仓库的托管服务,可以将你的本地仓库克隆到远程仓库,倘若你的本地仓库崩了(当然一般来说是被你手动删除某些文件),就可以用远程仓库这个副本来重建你的心血。
本地库Push到远程仓库
- 在github建一个项目仓库
- 将本地仓库与远程仓库关联
‘git remote add orgin 地址’
地址为ssh的地址,因为已经添加了公钥,这样就不用再输入密码 - 推送文件到分支
第一次命令:
git push -u origin master
这样将本地master与远程master相关联
之后的命令:
git push origin master
将远程仓库克隆到本地
git clone 地址
这样就可以把远程仓库克隆到本地,这种操作,毫无疑问,比下载压缩包要快,还看起来更牛皮,skr~