SVN是集中式版本控制系統,版本庫是集中放在中央服務器的,而幹活的時候,用的都是本身的電腦,因此首先要從中央服務器哪裏獲得最新的版本,而後幹活,幹完後,須要把本身作完的活推送到中央服務器。集中式版本控制系統是必須聯網才能工做,若是在局域網還能夠,帶寬夠大,速度夠快,若是在互聯網下,若是網速慢的話,就納悶了。git
Git是目前世界上最早進的分佈式版本控制系統。github
Git是分佈式版本控制系統,那麼它就沒有中央服務器的,每一個人的電腦就是一個完整的版本庫,這樣,工做的時候就不須要聯網了,由於版本都是在本身的電腦上。既然每一個人的電腦都有一個完整的版本庫,那多我的如何協做呢?好比說本身在電腦上改了文件A,其餘人也在電腦上改了文件A,這時,大家兩之間只需把各自的修改推送給對方,就能夠互相看到對方的修改了。服務器
安裝完成後,在開始菜單裏找到「Git」->「Git Bash」,蹦出一個相似命令行窗口的東西,就說明Git安裝成功!微信
安裝完成後,還須要最後一步設置,在命令行輸入:app
$ git config --global user.name "Your Name" $ git config --global user.email "email@example.com"
一、建立Git版本庫ssh
$ cd E: $ cd 公司資料 $ mkdir Git倉庫 $ cd Git倉庫
二、顯示當前目錄分佈式
$ pwd /e/公司資料/Git倉庫
三、Git init把這個目錄變成能夠管理的倉庫spa
$ git init Initialized empty Git repository in E:/公司資料/Git倉庫/.git/
四、用git add 添加到暫存區裏面命令行
$ git add test.txt
五、把文件提交到倉庫版本控制
$ git commit -m "test.txt提交" [master (root-commit) 6839a9c] test.txt提交 1 file changed, 1 insertion(+) create mode 100644 test.txt
六、查看是否還有未提交文件
$ git status On branch master nothing to commit, working tree clean
七、查看兩次提交文件的不一樣
$ git diff test.txt diff --git a/test.txt b/test.txt index 5f2f16b..c7dc989 100644 --- a/test.txt +++ b/test.txt @@ -1 +1 @@ -1111 +2222
八、歷史版本查看
$ git log commit 92ad86071889c2e76b4ad3969126a1e58d156492 Date: Mon Feb 13 18:17:00 2017 +0800 test commit 6839a9cf5ba3a8be6e0f66a08b39469bdcc63520 Date: Mon Feb 13 17:52:42 2017 +0800 test.txt提交 $ git log --pretty=oneline 92ad86071889c2e76b4ad3969126a1e58d156492 test 6839a9cf5ba3a8be6e0f66a08b39469bdcc63520 test.txt提交
九、版本回退,若是是100,後面就接100
$ git reset --hard HEAD~1 HEAD is now at 6839a9c test.txt提交
十、查看版本號
$ git reflog 6839a9c HEAD@{0}: reset: moving to HEAD~1 92ad860 HEAD@{1}: commit: test 6839a9c HEAD@{2}: commit (initial): test.txt提交
十一、根據版本號來恢復
$ git reset --hard 92ad860 HEAD is now at 92ad860 test
十二、丟棄當前工做區的更改
$ git checkout -- test.txt
注意:
工做區的修改內容,執行這個命令會保持和版本庫一致。
已經添加到暫存區後修改的,執行這個命令會和剛添加到暫存區的一致
git checkout -- test.txt中的--很重要,沒有的話就變成建立分支了
1三、刪除文件
$ git add 1.txt $ git status On branch master Changes to be committed: (use "git reset HEAD <file>..." to unstage) new file: 1.txt $ git commit -m "1.txt" [master 7836738] 1.txt 1 file changed, 1 insertion(+) create mode 100644 1.txt $ git status On branch master nothing to commit, working tree clean $ rm 1.txt $ git status On branch master Changes not staged for commit: (use "git add/rm <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) deleted: 1.txt no changes added to commit (use "git add" and/or "git commit -a") ##此時會回退 $ git checkout -- 1.txt $ git status On branch master nothing to commit, working tree clean $ rm 1.txt ##此時會刪除 $ git commit -a Aborting commit due to empty commit message.
首先你得有個Github的帳號吧,哈哈
一、建立SSH KEY(先檢查一下看有沒有哈,沒有再搞C:\Users\任冠亞\.ssh)
$ ssh-keygen -t rsa -C "your-mail"
二、登錄你的github,打開」 settings」中的SSH Keys頁面,而後點擊「Add SSH Key」,填上任意title,在Key文本框裏黏貼id_rsa.pub文件的內容。
固然Tom就是我本人的英文名字了
三、添加一個遠程倉庫
添加完成後咱們就有一個空倉庫了
四、把本地庫和線上庫關聯,而後推送本地代碼
$ git remote add origin git@git.benmu-health.org:renguanya/test.git $ git push -u origin master
如今遠端就有東西了
Git push就是把當前分支master推送到遠程。第一次推送的時候加上-u參數,Git不但會把本地master推送到遠程,還會把本地和遠程master關聯起來。
如今你就有了你本身的Git倉庫了,之後本地提交後,就運行這個push
$ git push origin master
五、如何把遠程的代碼get下來呢
$ git clone git@git.xxxxxxxxxxx
Git基本經常使用命令以下: git commit -- m 「xx」 -m後面接的是註釋 git reset -- hard HEAD^ 或者 git reset –hard HEAD~ 回退到上一個版本(若是想回退到100個版本,使用git reset –hard HEAD~100 ) git reflog 查看歷史記錄的版本號id git checkout -- XX 把XX文件在工做區的修改所有撤銷。 git rm XX 刪除XX文件 git remote add origin xxxx 關聯一個遠程庫 git push -u origin master 把當前master分支推送到遠程庫 git clone xxxx 從遠程庫中克隆 git checkout –b dev 建立dev分支 並切換到dev分支上 git branch 查看當前全部的分支 git checkout master 切換回master分支 git merge dev 在當前的分支上合併dev分支 git branch –d dev 刪除dev分支 git branch name 建立分支 git stash 把當前的工做隱藏起來 等之後恢復現場後繼續工做 git stash list 查看全部被隱藏的文件列表 git stash apply 恢復被隱藏的文件,可是內容不刪除 git stash drop 刪除文件 git stash pop 恢復文件的同時 也刪除文件 git remote 查看遠程庫的信息 git remote –v 查看遠程庫的詳細信息 git push origin master Git會把master分支推送到遠程庫對應的遠程分支上
PS:上述只是一些基本的知識,明天儘可能接着更二
爲了方便你們交流,本人開通了微信公衆號,和QQ羣291519319。喜歡技術的一塊兒來交流吧