git文件管理
2019-03-19 本文已影响6人
缘来是你ylh
clone或者init工程后,工程目录下都有一个.git的版本库.他是隐藏的,ls -ah才能查看
stage是暂存区
git.png0.git add 添加修改的文件
git add file 添加文件file到暂存区
git add . 添加全部改动的文件到暂存区
1.git commit 提交文件到本地分支
git commit -m '提交说明'
2.git status 查看工作区的文件状态是否被改动
3.git diff 查看具体的改动内容
git diff HEAD — readme.txt
查看工作区文件和版本库最新版本的区别
4.git log 查看从近到远的提交日志
git log —pretty=oneline 美化显示日志
eg:
$ git log --pretty=oneline
3628164fb26d48395383f8f31179f24e0882e1e0 append GPL
ea34578d5496d7dd233c827ed32a8cd576c5ee85 add distributed
cb926e7ea50ad11b8f9e909c05226233bf755030 wrote a readme file
你看到的一大串类似3628164...882e1e0的是commit id(版本号),和SVN不一样,Git的commit id不是1,2,3……递增的数字,而是一个SHA1计算出来的一个非常大的数字,用十六进制表示,而且你看到的commit id和我的肯定不一样,以你自己的为准。
5.git reset 回退
git reset --hard HEAD^ 回退到上一个版本
git reset —hard commit id 回退到某一个版本 commit id只要写前几个字符,git会自动查找
eg: git reset —hard ea34578
Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交3628164...882e1e0(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
6.git reflog 记录你的每一次命令
Git提供的后悔药,时光穿梭机
ea34578 HEAD@{0}: reset: moving to HEAD^
3628164 HEAD@{1}: commit: append GPL
ea34578 HEAD@{2}: commit: add distributed
cb926e7 HEAD@{3}: commit (initial): wrote a readme file
有了这个我们就能拿到历史的commit id,来回穿梭
7.git checkout --filename 丢弃工作区的修改
这里省略 --同样可以达到丢弃工作区修改的目的但是会带来问题
-- double dash,是bash的内置命令,用来隔离”树”和”命令”,加了--就认为后面的是文件路径而不是命令选项
git checkout还有一个作用就是切换分支,假设有个该死的文件叫master,你做修改后又想丢弃,你使用了git checkout master(这里省略了--),这个时候你就悲催了,git执行的是切换分支而不是丢弃修改
所以丢弃文件建议不要省略--这是个好习惯
8.git rm 删除文件
git rm filename 然后commit到分支,直接在文件管理器删除不提交是无效的哦!除非add添加进暂存区
如果是误删直接checkout就行了
9.推拉代码push pull
git push 将本地分支代码推送到远端分支
git pull 将远端分支代码拉倒本地