git操做詳見:http://www.cnblogs.com/fanlinqiang/p/7741220.htmlhtml
第一步:$> ssh一keygen 一t rss 一C zhangsan@abc.com 第二步:拷貝公鑰到gitlab 第三步: $> git config —global user.name zhangsan $> git config —global user.email zhangsan@abc.com 第四步:$> git clone git@lab.com:org/project.git 第五步:$> git checkout 一b project一20170227一zhangsan一bugfix 第六步:修改代碼 第七步:git status 第八步:git add . 第九步:git commit 一am ‘bugfix’ 第十步:git push 一一set一upstream origin project一20170227一zhangsan一bugfix
Index/Stage:暫存區java
Workspace:工做區git
Repository:倉庫區(或本地倉庫)算法
Remote:遠程倉庫服務器
git init; (# 在當前目錄新建一個Git代碼庫)網絡
git add (添加當前目錄的全部文件到暫存區)ssh
git rm –cached [file] (# 中止追蹤指定文件,但該文件會保留在工做區)分佈式
git commit [file1] [file2] -m [message] (# 提交暫存區的指定文件到倉庫區 )svn
git branch -a (列出全部本地分支和遠程分支)gitlab
git checkout [branch-name] (# 切換到指定分支,並更新工做區)
git status( # 顯示有變動的文件)
git push [remote] -tags (# 提交全部tag)
詳細參見:http://www.cnblogs.com/fanlinqiang/p/7741220.html
git是分佈式的,svn不是。
git跟svn同樣有本身的集中式版本庫或服務器。但git更傾向於被使用於分佈式模式,克隆版本庫後即便沒有網絡也可以commit文件,查看歷史版本記錄,建立項目分支等,等網絡再次鏈接上Push到服務器端。
git把內容按元數據方式存儲,而svn是按文件。
全部的資源控制系統都是把文件的元信息隱藏在一個相似.svn,.cvs等的文件夾裏。
git目錄是處於你的機器上的一個克隆版的版本庫,它擁有中心版本庫上全部的東西,例如標籤,分支,版本記錄等。
git沒有一個全局的版本號,svn有。
git的內容完整性優於svn。由於git的內容存儲使用的是SHA-1哈希算法。
git能夠有無限個版本庫,svn只能有一個指定中央版本庫。
當svn中央版本庫有問題時,全部工做成員都一塊兒癱瘓直到版本庫維修完畢或者新的版本庫設立完成。
每個git都是一個版本庫,區別是它們是否擁有活躍目錄(Git Working Tree)。若是主要版本庫(例如:置於GitHub的版本庫)有問題,工做成員仍然能夠在本身的本地版本庫(local repository)提交,等待主要版本庫恢復便可。工做成員也能夠提交到其餘的版本庫!
方法1:在當前主分支修改bug,暫存當前的改動的代碼,目的是讓工做空間和遠程代碼一致: Git stash 修改完bug後提交修改: git add . git commit 一m "fix bug 1" git push 從暫存區把以前的修改恢復,這樣就和以前改動同樣了 git stash pop 這時可能會出現衝突,由於你以前修改的文件,可能和bug是同一個文件,若是有衝突會提示: Auto一merging xxx.Java CONFLICT (content): Merge conflict in xxx.java 前往xxx.java解決衝突 注意stash pop意思是從暫存區恢復到工做空間,同時刪除此條暫存記錄。
方式2:拉一個新分支,老司機都推薦這樣作,充分利用了git特性,先暫存一下工做空間改動:
git stash 新建一個分支,而且換到這個新分支 git branch fix_bug //新建分支 git checkout fix_bug //切換分支 這時候就能夠安心的在這個fix_bug分支改bug了,改完以後: git add . git commit 一m "fix a bug" 切換到master主分支 git checkout master 從fix_bug合併到master分支 git merge fix_bug 提交代碼 git push 而後從暫存區恢復代碼 git stash pop 此時若有衝突,須要解決衝突