若是多人合做時,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 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 命令所在的工做。在使用本命令後,本地的修改並不會消失,而是回到瞭如(一)所示的狀態。繼續用(一)中的操做,就能夠放棄本地的修改。