Git--版本管理的使用及理解

若是多人合做時,git也是須要中間交換服務器來解決衝突合併,這不仍是集中式版本控制嗎?
而svn不是也能夠將全部源碼下載到本機,而後在本機修改,保存在本機上,爲何這個不能說是分佈式,提交的時候不也是解決衝突合併就ok嗎?html

git和svn的區別:java

https://blog.csdn.net/hellow__world/article/details/72529022git

git詳細使用說明:github

https://my.oschina.net/gsbhz/blog/337719緩存

 

 

 

git使用過程簡介:服務器

準備工做app

1.下載git,並安裝,安裝完畢後,桌面空白處上右鍵,菜單出現Git GUI Here和Git Bash Here既安裝成功分佈式

2.註冊github帳號(這一步不是必須,由於本文要配合github使用,因此須要github做爲遠程倉庫)svn

 

Git基本經常使用命令以下:post

   mkdir:         XX (建立一個空目錄 XX指目錄名)

   pwd:          顯示當前目錄的路徑。

   git init          把當前的目錄變成能夠管理的git倉庫,生成隱藏.git文件。

   git add test.txt       把test.txt 文件添加到暫存區去。

   git commit –m 「修改bug10879」  提交文件 –m 後面的是註釋。

   git status        查看倉庫狀態

   git diff  test.txt       查看test.txt 文件修改了那些內容

   git log          查看歷史記錄

   git reset  –hard HEAD^ 或者 git reset  –hard HEAD~ 回退到上一個版本

                        (若是想回退到100個版本,使用git reset –hard HEAD~100 )

   cat test.txt          查看test.txt 文件內容

   git reflog       查看歷史記錄的版本號id

   git checkout -- test.txt   把test.txt 文件在工做區的修改所有撤銷。

   git rm test.txt           刪除test.txt 文件

   git remote add origin http://github.com/username/gittest 關聯一個遠程庫

   git push –u origin master  (第一次要用-u 之後不須要) 把當前master分支推送到遠程庫

   git push origin master  Git會把master分支推送到遠程庫對應的遠程分支上

   git clone http://github.com/username/gittest 從遠程庫中克隆

   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 add 添加 多餘文件 
這樣的錯誤是因爲, 有的時候 可能

git add . (空格+ 點) 表示當前目錄全部文件,不當心就會提交其餘文件

git add 若是添加了錯誤的文件的話

撤銷操做

git status 先看一下add 中的文件 
git reset HEAD 若是後面什麼都不跟的話 就是上一次add 裏面的所有撤銷了 
git reset HEAD XXX/XXX/XXX.java 就是對某個文件進行撤銷了

 

 

git 放棄本地修改

若是在修改時發現修改錯誤,而要放棄本地修改時,

一,未使用 git add 緩存代碼時。

可使用 git checkout -- filepathname (好比: git checkout -- readme.md  ,不要忘記中間的 「--」 ,不寫就成了檢出分支了!!)。放棄全部的文件修改可使用 git checkout .  命令。

此命令用來放棄掉全部尚未加入到緩存區(就是 git add 命令)的修改:內容修改與整個文件刪除。可是此命令不會刪除掉剛新建的文件。由於剛新建的文件還沒已有加入到 git 的管理系統中。因此對於git是未知的。本身手動刪除就行了。

 

二,已經使用了  git add 緩存了代碼。

可使用  git reset HEAD filepathname (好比: git reset HEAD readme.md)來放棄指定文件的緩存,放棄因此的緩存可使用 git reset HEAD . 命令。

此命令用來清除 git  對於文件修改的緩存。至關於撤銷 git add 命令所在的工做。在使用本命令後,本地的修改並不會消失,而是回到瞭如(一)所示的狀態。繼續用(一)中的操做,就能夠放棄本地的修改。

相關文章
相關標籤/搜索