码农的世界程序员IT技术篇

git文件管理

2019-03-19  本文已影响6人  缘来是你ylh

clone或者init工程后,工程目录下都有一个.git的版本库.他是隐藏的,ls -ah才能查看

stage是暂存区

git.png

0.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 将远端分支代码拉倒本地

上一篇下一篇

猜你喜欢

热点阅读