原始碼管理器git與svn辨析
git--分散式管理
svn--集中式管理的代表
git具體命令收集:
檢視、新增、提交、刪除、找回,重置修改檔案
git help <command> # 顯示command的help
git show # 顯示某次提交的內容 git show $id
git co -- <file> # 拋棄工作區修改
git co . # 拋棄工作區修改
git add <file> # 將工作檔案修改提交到本地暫存區
git add . # 將所有修改過的工作檔案提交暫存區
git rm <file> # 從版本庫中刪除檔案
git rm <file> --cached # 從版本庫中刪除檔案,但不刪除檔案
( .gitignore規則不生效的解決辦法: git rm -r --cached . )
git reset <file> # 從暫存區恢復到工作檔案
git reset -- . # 從暫存區恢復到工作檔案
git reset --hard # 恢復最近一次提交過的狀態,即放棄上次提交後的所有本次修改
git ci <file> git ci . git ci -a # 將git add, git rm和git ci等操作都合併在一起做 git ci -am "some comments"
git ci --amend # 修改最後一次提交記錄
git revert <$id> # 恢復某次提交的狀態,恢復動作本身也建立次提交物件
git revert HEAD # 恢復最後一次提交的狀態
檢視檔案diff
git diff <file> # 比較當前檔案和暫存區檔案差異 git diff
git diff <id1><id2> # 比較兩次提交之間的差異
git diff <branch1>..<branch2> # 在兩個分支之間比較
git diff --staged # 比較暫存區和版本庫差異
git diff --cached # 比較暫存區和版本庫差異
git diff --stat # 僅僅比較統計資訊
檢視提交記錄
git log git log <file> # 檢視該檔案每次提交記錄
git log -p <file> # 檢視每次詳細修改內容的diff
git log -p -2 # 檢視最近兩次詳細修改內容的diff
git log --stat #檢視提交統計資訊
tig
Mac上可以使用tig代替diff和log,brew install tig
Git 本地分支管理
檢視、切換、建立和刪除分支
git br -r # 檢視遠端分支
git br <new_branch> # 建立新的分支
git br -v # 檢視各個分支最後提交資訊
git br --merged # 檢視已經被合併到當前分支的分支
git br --no-merged # 檢視尚未被合併到當前分支的分支
git co <branch> # 切換到某個分支
git co -b <new_branch> # 建立新的分支,並且切換過去
git co -b <new_branch> <branch> # 基於branch建立新的new_branch
git co $id # 把某次歷史提交記錄checkout出來,但無分支資訊,切換到其他分支會自動刪除
git co $id -b <new_branch> # 把某次歷史提交記錄checkout出來,建立成一個分支
git br -d <branch> # 刪除某個分支
git br -D <branch> # 強制刪除某個分支 (未被合併的分支被刪除的時候需要強制)
分支合併和rebase
git merge <branch> # 將branch分支合併到當前分支
git merge origin/master --no-ff # 不要Fast-Foward合併,這樣可以生成merge提交
git rebase master <branch> # 將master rebase到branch,相當於: git co <branch> && git rebase master && git co master && git merge <branch>
Git補丁管理(方便在多臺機器上開發同步時用)
git diff > ../sync.patch # 生成補丁
git apply ../sync.patch # 打補丁
git apply --check ../sync.patch #測試補丁能否成功
Git暫存管理
git stash # 暫存
git stash list # 列所有stash
git stash apply # 恢復暫存的內容
git stash drop # 刪除暫存區
Git遠端分支管理
git pull # 抓取遠端倉庫所有分支更新併合併到本地
git pull --no-ff # 抓取遠端倉庫所有分支更新併合併到本地,不要快進合併
git fetch origin # 抓取遠端倉庫更新
git merge origin/master # 將遠端主分支合併到本地當前分支
git co --track origin/branch # 跟蹤某個遠端分支建立相應的本地分支
git co -b <local_branch> origin/<remote_branch> # 基於遠端分支建立本地分支,功能同上
git push # push所有分支
git push origin master # 將本地主分支推到遠端主分支
git push -u origin master # 將本地主分支推到遠端(如無遠端主分支則建立,用於初始化遠端倉庫)
git push origin <local_branch> # 建立遠端分支, origin是遠端倉庫名
git push origin <local_branch>:<remote_branch> # 建立遠端分支
git push origin :<remote_branch> #先刪除本地分支(git br -d <branch>),然後再push刪除遠端分支
Git遠端倉庫管理
git remote -v # 檢視遠端伺服器地址和倉庫名稱
git remote show origin # 檢視遠端伺服器倉庫狀態
git remote add origin [email protected] github:robbin/robbin_site.git # 新增遠端倉庫地址
git remote set-url origin [email protected] github.com:robbin/robbin_site.git # 設定遠端倉庫地址(用於修改遠端倉庫地址) git remote rm <repository> # 刪除遠端倉庫
建立遠端倉庫
git clone --bare robbin_site robbin_site.git # 用帶版本的專案建立純版本倉庫
scp -r my_project.git [email protected] git.csdn.net:~ # 將純倉庫上傳到伺服器上
mkdir robbin_site.git && cd robbin_site.git && git --bare init # 在伺服器建立純倉庫
git remote add origin [email protected] github.com:robbin/robbin_site.git # 設定遠端倉庫地址
git push -u origin master # 客戶端首次提交
git push -u origin develop # 首次將本地develop分支提交到遠端develop分支,並且track
git remote set-head origin master # 設定遠端倉庫的HEAD指向master分支
也可以命令設定跟蹤遠端庫和本地庫
git branch --set-upstream master origin/master
git branch --set-upstream develop origin/develop
/** 賬戶資訊設定 */
git config --global user.name "Your Name"
git config --global user.email [email protected]全域性的通過vim ~/.gitconfig來檢視
git config user.name "Your Name"
git config user.email [email protected]
區域性的通過當前路徑下的 .git/config檔案來檢視
也可以修改提交的使用者名稱和Email:
git commit --amend --author='Your Name '
當我們安裝好git軟體包,或者著手在一個新的機子上使用git的時候,我們首先需要進行一些基本的配置工作,這個就要用到git config。
git config是用於進行一些配置設定,有三種不同的方式來指定這些配置適用的範圍:
1) git config 針對一個git倉庫 2) git config --global 針對一個使用者
3) sudo git config --system 針對一個系統,因為是針對整個系統的,所以必須使用sudo
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
svn 具體命令收集:
2、命令
1、將檔案checkout到本地目錄
svn checkout path(path是伺服器上的目錄)
簡寫:svn co
2、往版本庫中新增新的檔案
svn add file
3、將改動的檔案提交到版本庫
svn commit -m “LogMessage” [-N] [--no-unlock] PATH(如果選擇了保持鎖,就使用–no-unlock開關)
簡寫:svn ci
4、加鎖/解鎖
svn lock -m “LockMessage” [--force] PATH
svn unlock PATH
5、更新到某個版本
svn update -r m path
簡寫:svn up
6、檢視檔案或者目錄狀態
1)svn status path(目錄下的檔案和子目錄的狀態,正常狀態不顯示)
2)svn status -v path(顯示檔案和子目錄狀態)
簡寫:svn st
7、刪除檔案
svn delete path -m “delete test fle”
簡寫:svn (del, remove, rm)
8、檢視日誌
svn log path
9、檢視檔案詳細資訊
svn info path
10、比較差異
svn diff path(將修改的檔案與基礎版本比較)
svn diff -r m:n path(對版本m和版本n比較差異)
簡寫:svn di
11、將兩個版本之間的差異合併到當前檔案
svn merge -r m:n path
12、SVN 幫助
svn help
svn help ci
參考連結:
http://www.oschina.net/question/565065_86193
http://www.cnblogs.com/cspku/articles/Git_cmds.html
http://blog.chinaunix.net/uid-26997997-id-3231891.html
http://www.pfeng.org/archives/840
相關推薦
原始碼管理器git與svn辨析
git--分散式管理 svn--集中式管理的代表 git具體命令收集: 檢視、新增、提交、刪除、找回,重置修改檔案 git help <command> # 顯示command的help git show # 顯示某次提交的內容 git show $id
版本管理工具git與svn簡介
clear 碼代碼 check fig 常用指令 ons 自己的 開發 1.0 版本管理工具 版本管理工具簡介 常見版本管理工具 cvs(Concurrent Versions System) vss(Visual SourceSafe) svn 常用的版本管理工具 g
完美解決--用VS中的Git做代碼管理器,與他人共享代碼
服務 git 新建 註冊郵箱 一起 下載 代碼管理 svn 進行 1、創建代碼倉庫,這裏說一下為什麽要創建倉庫,Git不能夠作為源代碼管理器,vs中自帶的也只能夠在本地進行管理,要和他們共享的話必須要有服務器端去存儲代碼,類似於SVN,它就有客戶端和服務器端,這裏推薦用Gi
Git 原始碼管理器使用小結
Git 建立版本庫 Repository cd 進去 pwd 得到當前目錄 git init 命令 把目錄初始化成git 能夠管理的目錄 .git的目錄,這個目錄是Git來跟蹤管理版本庫的 如果你沒有看到.git目錄,那是因為這個目錄預設是隱藏的,用ls -ah命令就
git與svn的區別
核心 con 能夠 blank 分布式 重新 心情 工作目錄 流程 1)Git是分布式的,SVN不是: 這 是GIT和其它非分布式的版本控制系統,例如SVN,CVS等,最核心的區別。好處是跟其他同事不會有太多的沖突,自己寫的代碼放在自己電腦上,一段時間後再提交、合並,也可以
拾遺:Git 與 Svn hook 不執行問題
環境變量 環境 git epo mit 重新 ron 不執行 str 要點: GIT 或 SVN 的 hook 執行之前,會將所有環境變量清空,因此在其中執行命令時,必須指定絕對路徑或重新設置必要的環境變量,如:$HOME 等 修改為正確的名稱,如:post-commit
git與svn 集中式與分布式
svn git 集中式vs分布式Linus一直痛恨的CVS及SVN都是集中式的版本控制系統,而Git是分布式版本控制系統,集中式和分布式版本控制系統有什麽區別呢?先說集中式版本控制系統,版本庫是集中存放在中央服務器的,而幹活的時候,用的都是自己的電腦,所以要先從中央服務器取得最新的版本,然後開始幹活,
GIT與SVN的比較
影響 git與svn 權限控制 不同 只有一個 情況 有一個 會有 例如 根據自己平時的使用,來比較下GIT與SVN的不同。 1. GIT是分布式的,而SVN不是,這是最核心的區別。 當然GIT跟SVN一樣也有集中式版本庫或服務器,但GIT更傾向於分布式開發。因為每個開發
IDEA中 GIT與SVN版本控制插件的切換
img image 項目 XML 插件 .com 直接 .cn 版本 IDEA同一個項目中,有時候會用到 GIT 有時候 也會用到 SVN 在IDEA中,沒有按鈕可以直接切換的,所以可以直接修改 .IDEA 文件夾中的XML配置文件, 不需要重啟喔,直接在IDEA
淺談Git與SVN的使用感受
開發 -c 運用 svn的使用 我們 repo easy 這一 style 作為版本號控制工作。兩者的做大的差別應該在於:Git屬於分布式版本號控制工具,而SVN屬於
對比Git 與 SVN,這篇講的很易懂
evel 接下來 核心概念 ssa 操作 過程 cal nal 當前目錄 歡迎大家前往騰訊雲+社區,獲取更多騰訊海量技術實踐幹貨哦~ 本文由騰訊工蜂發表於雲+社區專欄 導語 本文從 Git 與 SVN 的對比入手,介紹如何通過 Git-SVN 開始使用 Git,並總結平
對比 Git 與 SVN,這篇講的很易懂
一、Git vs SVNGit 和 SVN 孰優孰好,每個人有不同的體驗。 Git是分散式的,SVN是集中式的 這是 Git 和 SVN 最大的區別。若能掌握這個概念,兩者區別基本搞懂大半。因為 Git 是分散式的,所以 Git 支援離線工作,在本地可以進行很多操作,包括接下來將要重磅推出的分支功能。而
Git 與 SVN對比詳解
子目錄 get ref 聯網 但是 geek 分支合並 git ESS 一、Git vs SVNGit 和 SVN 孰優孰好,每個人有不同的體驗。 Git是分布式的,SVN是集中式的 這是 Git 和 SVN 最大的區別。若能掌握這個概念,兩者區別基本搞懂大半。因為 Git
對比 Git 與 SVN
一、Git vs SVN Git 和 SVN 孰優孰好,每個人有不同的體驗。 Git是分散式的,SVN是集中式的 這是 Git 和 SVN 最大的區別。若能掌握這個概念,兩者區別基本搞懂大半。因為 Git 是分散式的,所以 Git 支援離線工作,在本地可以進行很多操作,包括接下來將要重磅推出的
原始碼管理工具-git
一、原始碼管理工具概述 1、原始碼工具作用 程式碼回滾:返回到先前的某個狀態 程式碼合併:多人開發,將各自開發的模組進行合併 版本備份:專案開發到一定階段後進行備份 許可權控制:限制不同使用者訪問或操作不同的檔案 問題定位:出現問題後定位是誰造成的哪裡造成的 可以記錄專案的所有內
Git使用方法教程&Git與SVN區別
工作到現在一直使用的版本控制管理器都是SVN,最近開始接觸學習Git,下面是筆者根據教程,整理出的一些實用性比較強的簡單命令。在文章的後面附上Git與SVN的一些區別。 一、Git使用教程 1. git四大域 git四大域:工作目錄,暫存區,倉庫,遠端倉庫。git對檔案的操作都是在四大域上
版本控制工具 git與svn(分散式vs集中式)
版本控制:即記錄一個或若干檔案內容變化,以便將來查閱特定版本修訂情況以及回溯的系統。 集中式–svn SVN, 全名Subvision; 作為集中式版本控制工具,版本庫集中存放在中央伺服器,team裡每個人work時從中央伺服器下載程式碼,是必須聯網才能工作
git與svn的簡介與區別
目錄: SVN與Git比較(一)集中式vs分散式 SVN與Git比較(二)版本庫與工作區 SVN與Git比較(三)全域性版本號和全球版本號 SVN與Git比較(四)部分檢出 SVN與Git比較(五)更新和提交
基於git的原始碼管理模型——git flow
Git Flow 是什麼 Git Flow是構建在Git之上的一個組織軟體開發活動的模型,是在Git之上構建的一項軟體開發最佳實踐。Git Flow是一套使用Git進行原始碼管理時的一套行為規範和簡化部分Git操作的工具。 2010年5月,在一篇名為“一種成功的Git
Git與svn的異同及各自的優缺點
相同: 能記錄檔案的所有更改記錄。這樣是為了大量更改後,但是最後覺得還是原來的版本程式碼好,可以有記錄回到過去,而不用採用 Copy 舊程式碼另存為某檔案,然後某個時間從大量檔案中找你需要的歷史記錄,版本控制幫我們做到了歷史記錄的儲存,可以方便地查詢及回滾到過去的某一版本。 不同: git和