因为换了份工做,以前一直用SVN,如今须要用git,抽空学习一下。参照博客(https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000)在个人树莓派上练习一遍。git的由来就不重复了,分布式和集中的比较也不赘述。git
sudo apt-get install git
sql
git init分布式
git add filename学习
git commit -m "xxxx"spa
git log或者git log --pretty=oneline
3d
在git中,HEAD表示当前版本,上一版本表示HEAD^,上上版本表示HEAD^^,上100个版本表示HEAD~100指针
回退到上一个版本code
也能够为
git reset --hard HEAD^
git reset --hard 3628164(数字表示commit id)
六、查看历史命令
git reflogserver
工做区:就是咱们平时操做的目录blog
工做区有一个隐藏的文件夹叫.git,这个不算工做区,而是Git的版本库。
版本库存有不少重要的东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为咱们自动建立的第一个分支master
,以及指向master
的一个指针叫HEAD
。
git add 的动做就是把工做区的文件添加到暂存区(stage),git commit 就是把暂存区的全部文件一次性提交到分支。
git checkout -- readme.txt 只会撤销工做区的修改,在已经add到暂存区的文件不会被撤销。
若是修改的东西已经被git add 到暂存区,如何回退呢?
用命令git reset HEAD file
能够把暂存区的修改撤销掉(unstage),从新放回工做区。
场景1:当你改乱了工做区某个文件的内容,想直接丢弃工做区的修改时,用命令git checkout -- file
。
场景2:当你不但改乱了工做区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file
,就回到了场景1,第二步按场景1操做。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考回退版本一节,不过前提是没有推送到远程库。
git rm
git commit
git clone
要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git
;
关联后,使用命令git push -u origin master
第一次推送master分支的全部内容;
此后,每次本地提交后,只要有必要,就能够使用命令git push origin master
推送最新修改;