GIT多版本併發控制(一)

1、SVN和Git

SVN是集中式版本控制系統,版本庫是集中放在中央服務器的,而幹活的時候,用的都是本身的電腦,因此首先要從中央服務器哪裏獲得最新的版本,而後幹活,幹完後,須要把本身作完的活推送到中央服務器。集中式版本控制系統是必須聯網才能工做,若是在局域網還能夠,帶寬夠大,速度夠快,若是在互聯網下,若是網速慢的話,就納悶了。git

 

Git是目前世界上最早進的分佈式版本控制系統。github

Git是分佈式版本控制系統,那麼它就沒有中央服務器的,每一個人的電腦就是一個完整的版本庫,這樣,工做的時候就不須要聯網了,由於版本都是在本身的電腦上。既然每一個人的電腦都有一個完整的版本庫,那多我的如何協做呢?好比說本身在電腦上改了文件A,其餘人也在電腦上改了文件A,這時,大家兩之間只需把各自的修改推送給對方,就能夠互相看到對方的修改了。服務器

2、在WINDOWS上安裝Git

安裝完成後,在開始菜單裏找到「Git」->「Git Bash」,蹦出一個相似命令行窗口的東西,就說明Git安裝成功!微信

安裝完成後,還須要最後一步設置,在命令行輸入:app

$ git config --global user.name "Your Name"

$ git config --global user.email "email@example.com"

3、Git操做

一、建立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.

4、遠程倉庫

首先你得有個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

5、Git經常使用命令

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。喜歡技術的一塊兒來交流吧

相關文章
相關標籤/搜索