学习git版本管理工具
由于换了份工作,之前一直用SVN,现在需要用git,抽空学习一下。参照博客(https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000)在我的树莓派上练习一遍。git的由来就不重复了,分布式和集中的比较也不赘述。
1、安装
sudo apt-get install git
2、创建版本库
git init
3、添加文件与提交
git add filename
git commit -m "xxxx"
4、查看log记录
git log或者git log --pretty=oneline
5、回退版本
在git中,HEAD表示当前版本,上一版本表示HEAD^,上上版本表示HEAD^^,上100个版本表示HEAD~100
回退到上一个版本
git reset --hard HEAD^
也可以为git reset --hard 3628164(数字表示commit id)
6、查看历史命令
git reflog
7、git两个重要的概念--工作区和暂存区
工作区:就是我们平时操作的目录
工作区有一个隐藏的文件夹叫.git,这个不算工作区,而是Git的版本库。
版本库存有很多重要的东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master
,以及指向master
的一个指针叫HEAD
。
git add 的动作就是把工作区的文件添加到暂存区(stage),git commit 就是把暂存区的所有文件一次性提交到分支。
8、撤销修改
git checkout -- readme.txt 只会撤销工作区的修改,在已经add到暂存区的文件不会被撤销。
如果修改的东西已经被git add 到暂存区,如何回退呢?
用命令git reset HEAD file
可以把暂存区的修改撤销掉(unstage),重新放回工作区。
小结
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file
。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file
,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考回退版本一节,不过前提是没有推送到远程库。
9、删除一个版本文件
git rm
git commit
10、从远程仓库下载
git clone
11、添加到远程仓库
要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git
;
关联后,使用命令git push -u origin master
第一次推送master分支的所有内容;
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master
推送最新修改;