版本管理器命令行总结
生活随笔
收集整理的這篇文章主要介紹了
版本管理器命令行总结
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Git基本命令行操作
http://www.cnblogs.com/lee0oo0/archive/2013/06/28/3161829.htmlA. 新建Git倉庫,創(chuàng)建新文件夾
git init
?
B. 添加文件到git索引
git add <filename> ?--- 單個文件添加
git add * --- 全部文件添加
C. 提交到本地倉庫
git commit -m "代碼提交描述"
D. 提交到遠端倉庫
git push origin master
***master可以換成你想要推送的任何分支
分支:
1. 創(chuàng)建一個叫做"lee"的分支,并切換過去
git checkout -b lee
2. 切換回主分支
git checkout master
3. 把新建的分支刪除
git branch -d lee
4. 再push分支到遠端倉庫前,該分支不被人所見到
git push origin <branch>
更新與合并
A. 更新本地倉庫
git pull
B. 自動合并分支,多時引起沖突,沖突后需要手動解決
git merge <branch>
C. 合并后需要添加
git add <branch>
D. 合并前建議使用對比工具
git diff <source_branch> <target_branch>
E. 軟件發(fā)布是創(chuàng)建標簽,標簽與標記需要唯一
E.1 獲取提交ID
git log
E.2 創(chuàng)建標簽
git ?tag ?1.2.3 ?提交ID
?
F. 回退到某個歷史版本
F.1 獲取提交ID
git log
F.2 回退到指定版本 ?
git reset --hard 提交ID
G. 使用reset命令后log是得不到充分信息的,這時我們需要使用reflog,然后再reset
git reflog
H. 彩色git輸出
git config color.ui true
I. 查看遠程分支與本地分支
git branch -a
J. push一個指定分支名到遠程分支,如果遠程服務(wù)器沒有這個分支則創(chuàng)建
git push origin <brancheName>
K. 刪除一個遠程分支
git push origin --delete <branchName>
L. 如果使用rm誤刪了文件,可以通過兩步恢復(fù)
1. git reset HRAD 文件名
2. git checkout -- 文件名
M. 刪除文件
git rm 文件名 ? ?(同時刪除工作目錄與本地倉庫的文件)
git rm --cached 文件名 ? ? (刪除本地倉庫文件,并不影響工作目錄)
N. 改變上傳地址
git remote set-url origin ssh://git@git.sailor.cn/~/WeiYu
O. 根據(jù)服務(wù)器的地址創(chuàng)建本地git與服務(wù)器的地址關(guān)聯(lián)
git remote add origin ssh://lht@git_server/var/lib/scm/git/lht/test.git
========
Git常用命令
http://www.cnblogs.com/cspku/articles/Git_cmds.html查看、添加、提交、刪除、找回,重置修改文件
git help <command> # 顯示command的help
git show # 顯示某次提交的內(nèi)容 git show $id
git co -- <file> # 拋棄工作區(qū)修改
git co . # 拋棄工作區(qū)修改
git add <file> # 將工作文件修改提交到本地暫存區(qū)
git add . # 將所有修改過的工作文件提交暫存區(qū)
git rm <file> # 從版本庫中刪除文件
git rm <file> --cached # 從版本庫中刪除文件,但不刪除文件
git reset <file> # 從暫存區(qū)恢復(fù)到工作文件
git reset -- . # 從暫存區(qū)恢復(fù)到工作文件
git reset --hard # 恢復(fù)最近一次提交過的狀態(tài),即放棄上次提交后的所有本次修改
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> # 恢復(fù)某次提交的狀態(tài),恢復(fù)動作本身也創(chuàng)建次提交對象
git revert HEAD # 恢復(fù)最后一次提交的狀態(tài)
查看文件diff
git diff <file> # 比較當(dāng)前文件和暫存區(qū)文件差異 git diff
git diff <id1><id1><id2> # 比較兩次提交之間的差異
git diff <branch1>..<branch2> # 在兩個分支之間比較
git diff --staged # 比較暫存區(qū)和版本庫差異
git diff --cached # 比較暫存區(qū)和版本庫差異
git diff --stat # 僅僅比較統(tǒng)計信息
查看提交記錄
git log git log <file> # 查看該文件每次提交記錄
git log -p <file> # 查看每次詳細修改內(nèi)容的diff
git log -p -2 # 查看最近兩次詳細修改內(nèi)容的diff
git log --stat #查看提交統(tǒng)計信息
tig
Mac上可以使用tig代替diff和log,brew install tig
Git 本地分支管理
查看、切換、創(chuàng)建和刪除分支
git br -r # 查看遠程分支
git br <new_branch> # 創(chuàng)建新的分支
git br -v # 查看各個分支最后提交信息
git br --merged # 查看已經(jīng)被合并到當(dāng)前分支的分支
git br --no-merged # 查看尚未被合并到當(dāng)前分支的分支
git co <branch> # 切換到某個分支
git co -b <new_branch> # 創(chuàng)建新的分支,并且切換過去
git co -b <new_branch> <branch> # 基于branch創(chuàng)建新的new_branch
git co $id # 把某次歷史提交記錄checkout出來,但無分支信息,切換到其他分支會自動刪除
git co $id -b <new_branch> # 把某次歷史提交記錄checkout出來,創(chuàng)建成一個分支
git br -d <branch> # 刪除某個分支
git br -D <branch> # 強制刪除某個分支 (未被合并的分支被刪除的時候需要強制)
?分支合并和rebase
git merge <branch> # 將branch分支合并到當(dāng)前分支
git merge origin/master --no-ff # 不要Fast-Foward合并,這樣可以生成merge提交
git rebase master <branch> # 將master rebase到branch,相當(dāng)于: git co <branch> && git rebase master && git co master && git merge <branch>
?Git補丁管理(方便在多臺機器上開發(fā)同步時用)
git diff > ../sync.patch # 生成補丁
git apply ../sync.patch # 打補丁
git apply --check ../sync.patch #測試補丁能否成功
?Git暫存管理
git stash # 暫存
git stash list # 列所有stash
git stash apply # 恢復(fù)暫存的內(nèi)容
git stash drop # 刪除暫存區(qū)
Git遠程分支管理
git pull # 抓取遠程倉庫所有分支更新并合并到本地
git pull --no-ff # 抓取遠程倉庫所有分支更新并合并到本地,不要快進合并
git fetch origin # 抓取遠程倉庫更新
git merge origin/master # 將遠程主分支合并到本地當(dāng)前分支
git co --track origin/branch # 跟蹤某個遠程分支創(chuàng)建相應(yīng)的本地分支
git co -b <local_branch> origin/<remote_branch> # 基于遠程分支創(chuàng)建本地分支,功能同上
git push # push所有分支
git push origin master # 將本地主分支推到遠程主分支
git push -u origin master # 將本地主分支推到遠程(如無遠程主分支則創(chuàng)建,用于初始化遠程倉庫)
git push origin <local_branch> # 創(chuàng)建遠程分支, origin是遠程倉庫名
git push origin <local_branch>:<remote_branch> # 創(chuàng)建遠程分支
git push origin :<remote_branch> #先刪除本地分支(git br -d <branch>),然后再push刪除遠程分支
Git遠程倉庫管理
GitHub
git remote -v # 查看遠程服務(wù)器地址和倉庫名稱
git remote show origin # 查看遠程服務(wù)器倉庫狀態(tài)
git remote add origin git@ github:robbin/robbin_site.git # 添加遠程倉庫地址
git remote set-url origin git@ github.com:robbin/robbin_site.git # 設(shè)置遠程倉庫地址(用于修改遠程倉庫地址) git remote rm <repository> # 刪除遠程倉庫
創(chuàng)建遠程倉庫
git clone --bare robbin_site robbin_site.git # 用帶版本的項目創(chuàng)建純版本倉庫
scp -r my_project.git git@ git.csdn.net:~ # 將純倉庫上傳到服務(wù)器上
mkdir robbin_site.git && cd robbin_site.git && git --bare init # 在服務(wù)器創(chuàng)建純倉庫
git remote add origin git@ github.com:robbin/robbin_site.git # 設(shè)置遠程倉庫地址
git push -u origin master # 客戶端首次提交
git push -u origin develop # 首次將本地develop分支提交到遠程develop分支,并且track
git remote set-head origin master # 設(shè)置遠程倉庫的HEAD指向master分支
也可以命令設(shè)置跟蹤遠程庫和本地庫
git branch --set-upstream master origin/master
git branch --set-upstream develop origin/develop
========
svn 命令行下常用的幾個命令
http://blog.csdn.net/yangzhongxuan/article/details/70181681、將文件checkout到本地目錄?
?
? svn checkout path(path是服務(wù)器上的目錄)?
? ?例如:svn checkout svn://192.168.1.1/pro/domain?
? ?簡寫:svn co?
2、往版本庫中添加新的文件?
? svn add file?
? 例如:svn add test.php(添加test.php)?
? svn add *.php(添加當(dāng)前目錄下所有的php文件)?
3、將改動的文件提交到版本庫?
? svn commit -m "LogMessage" [-N] [--no-unlock] PATH(如果選擇了保持鎖,就使用--no-unlock開關(guān))?
? ?例如:svn commit -m "add test file for my test" test.php?
? ?簡寫:svn ci?
4、加鎖/解鎖?
?
? svn lock -m "LockMessage" [--force] PATH?
? 例如:svn lock -m "lock test file" test.php?
? svn unlock PATH?
5、更新到某個版本?
?
? svn update -r m path?
? ?例如:?
? ?svn update如果后面沒有目錄,默認將當(dāng)前目錄以及子目錄下的所有文件都更新到最新版本。?
? ?svn update -r 200 test.php(將版本庫中的文件test.php還原到版本200)?
? ?svn update test.php(更新,于版本庫同步。如果在提交的時候提示過期的話,是因為沖突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)
? ?簡寫:svn up?
6、查看文件或者目錄狀態(tài)?
?
? 1)svn status path(目錄下的文件和子目錄的狀態(tài),正常狀態(tài)不顯示)?
? ?【?:不在svn的控制中;M:內(nèi)容被修改;C:發(fā)生沖突;A:預(yù)定加入到版本庫;K:被鎖定】?
? 2)svn status -v path(顯示文件和子目錄狀態(tài))?
? ?第一列保持相同,第二列顯示工作版本號,第三和第四列顯示最后一次修改的版本號和修改人。?
? ?注:svn status、svn diff和 svn revert這三條命令在沒有網(wǎng)絡(luò)的情況下也可以執(zhí)行的,原因是svn在本地的.svn中保留了本地版本的原始拷貝。
? ?簡寫:svn st?
?
7、刪除文件?
?
? svn delete path -m "delete test fle"?
? 例如:svn delete svn://192.168.1.1/pro/domain/test.php -m "delete test file"?
? 或者直接svn delete test.php 然后再svn ci -m 'delete test file‘,推薦使用這種?
? 簡寫:svn (del, remove, rm)?
?
8、查看日志?
?
? svn log path?
? 例如:svn log test.php 顯示這個文件的所有修改記錄,及其版本號的變化?
9、查看文件詳細信息?
?
? svn info path?
? 例如:svn info test.php?
10、比較差異?
?
? svn diff path(將修改的文件與基礎(chǔ)版本比較)?
? 例如:svn diff test.php?
? ? ? ?svn diff -r m:n path(對版本m和版本n比較差異)?
? 例如:svn diff -r 200:201 test.php?
? 簡寫:svn di?
11、將兩個版本之間的差異合并到當(dāng)前文件?
?
? svn merge -r m:n path?
? 例如:svn merge -r 200:205 test.php(將版本200與205之間的差異合并到當(dāng)前文件,但是一般都會產(chǎn)生沖突,需要處理一下)?
? ??
12、SVN 幫助?
?
? svn help?
? svn help ci
------------------------------------------------------------------------------
?以上是常用命令,下面寫幾個不經(jīng)常用的??
------------------------------------------------------------------------------?
?
13、版本庫下的文件和目錄列表?
?
? svn list path?
? 顯示path目錄下的所有屬于版本庫的文件和目錄?
? 簡寫:svn ls ?
14、創(chuàng)建納入版本控制下的新目錄?
?
? svn mkdir: 創(chuàng)建納入版本控制下的新目錄。?
? 用法: 1、mkdir PATH...?
? ? ? ?2、mkdir URL...?
?
15、恢復(fù)本地修改?
?
? ?svn revert: 恢復(fù)原始未改變的工作副本文件 (恢復(fù)大部份的本地修改)。revert:?
? ?用法: revert PATH...?
? ?注意: 本子命令不會存取網(wǎng)絡(luò),并且會解除沖突的狀況。但是它不會恢復(fù)?
? ? ? ? 被刪除的目錄?
??
16、代碼庫URL變更?
?
? ? svn switch (sw): 更新工作副本至不同的URL。?
? ? 用法: 1、switch URL [PATH]?
? ? ? ? ? 2、switch --relocate FROM TO [PATH...]?
?
? ? ? ? ? 1、更新你的工作副本,映射到一個新的URL,其行為跟“svn update”很像,也會將?
? ? ? ? ? ? ?服務(wù)器上文件與本地文件合并。這是將工作副本對應(yīng)到同一倉庫中某個分支或者標記的?
? ? ? ? ? ? ?方法。?
? ? ? ? ? 2、改寫工作副本的URL元數(shù)據(jù),以反映單純的URL上的改變。當(dāng)倉庫的根URL變動?
? ? ? ? ? ? ?(比如方案名或是主機名稱變動),但是工作副本仍舊對映到同一倉庫的同一目錄時使用?
? ? ? ? ? ? ?這個命令更新工作副本與倉庫的對應(yīng)關(guān)系。?
??
17、解決沖突?
?
? ?svn resolved: 移除工作副本的目錄或文件的“沖突”狀態(tài)。?
? ?用法: resolved PATH...?
? ?注意: 本子命令不會依語法來解決沖突或是移除沖突標記;它只是移除沖突的?
? ?相關(guān)文件,然后讓 PATH 可以再次提交。?
??
18、輸出指定文件或URL的內(nèi)容。?
?
? svn cat 目標[@版本]...如果指定了版本,將從指定的版本開始查找。?
? svn cat -r PREV filename > filename (PREV 是上一版本,也可以寫具體版本號,這樣輸出結(jié)果是可以提交的)
svn checkout path(path是服務(wù)器上的目錄) svn add file svn add test.php(添加test.php) svn add *.php(添加當(dāng)前目錄下所有的php文件) svn commit -m "LogMessage" [-N] [--no-unlock] PATH(如果選擇了保持鎖,就使用--no-unlock開關(guān)) svn commit -m "add test file for my test" test.php svn ci svn lock -m "LockMessage" [--force] PATH svn lock -m "lock test file" test.php svn unlock PATH svn update -r m path svn update -r 200 test.php(將版本庫中的文件test.php還原到版本200) svn update test.php(更新,于版本庫同步。如果在提交的時候提示過期的話,是因為沖突,需要先update,修改文件,然后清除svn resolved,最后再提交commit) svn up svn status path(目錄下的文件和子目錄的狀態(tài),正常狀態(tài)不顯示) svn status -v path(顯示文件和子目錄狀態(tài)) svn st svn delete path -m "delete test fle" svn delete svn://192.168.1.1/pro/domain/test.php -m "delete test file" svn delete test.php 然后再svn ci -m 'delete test file‘,推薦使用這種 svn (del, remove, rm) svn log path svn log test.php 顯示這個文件的所有修改記錄,及其版本號的變化 svn info path svn info test.php svn diff path(將修改的文件與基礎(chǔ)版本比較) svn diff test.php svn diff -r m:n path(對版本m和版本n比較差異) svn diff -r 200:201 test.php svn di svn merge -r m:n path svn merge -r 200:205 test.php(將版本200與205之間的差異合并到當(dāng)前文件,但是一般都會產(chǎn)生沖突,需要處理一下) svn help svn help ci svn list path svn ls svn mkdir: 創(chuàng)建納入版本控制下的新目錄。 svn revert: 恢復(fù)原始未改變的工作副本文件 (恢復(fù)大部份的本地修改)。 svn switch (sw): 更新工作副本至不同的URL。 switch URL [PATH] switch --relocate FROM TO [PATH...] svn resolved: 移除工作副本的目錄或文件的“沖突”狀態(tài)。 svn cat 目標[@版本]...如果指定了版本,將從指定的版本開始查找。 svn cat -r PREV filename > filename (PREV 是上一版本,也可以寫具體版本號,這樣輸出結(jié)果是可以提交的)========
VSS控制臺常用命令
http://blog.csdn.net/powerlly/article/details/3032889? ? ? ?實例介紹幾個常用的VSS控制臺常用命令。
? ? ? ?格式說明:
? ? ? ? ? ? ? ?> ? ? 為輸入命令
? ? ? ? ? ? ? ?# ? ? 為注釋說明
? ? ? ? ? ? ? ?> 與 #行間為控制臺輸出內(nèi)容
??
. 登錄 ? ? ? ?
? ? ? ? 啟動GUI登錄:
? ? ? ? >ssexp -s//192.168.1.2/vss -yuser,user
? ? ? ?
? ? ? ? 命令行登錄:
? ? ? ? >set ssdir=//127.0.0.1/CompanyDEV
? ? ? ? >set ssuser=user
? ? ? ? >set sspwd=user
? ? ? ? >ss cp $
? ? ? ? 本地連接時問題:Unable to open user login file //127.0.0.1/CompanyDEV/data/loggedin/user.log.
? ? ? ? 設(shè)置共享目錄,通過“工具”->“查看”取消簡單共享設(shè)置。通過設(shè)置共享->權(quán)限精確控制訪問權(quán)限
. 創(chuàng)建Project
? ? ? ? >ss create $/CommonSolutions
? ? ? ? Comment for $/CommonSolutions:
? ? ? ? Collection of generate solutions.
? ? ? ? $/CommonSolutions ? ? ? ?
? ? ? ? # 無選項,要求輸入comment,當(dāng)前目錄不變
? ? ? ? >ss dir
? ? ? ? $/:
? ? ? ? $CommonSolutions
? ? ? ? 1 item(s)
? ? ? ? >ss create $/ProductSolutions -C"Solution of product ." -S
? ? ? ? $/ProductSolutions
? ? ? ? Setting current project to $/ProductSolutions
? ? ? ? # -C添加注釋,-S創(chuàng)建Project自動跳轉(zhuǎn)到新創(chuàng)建目錄
? ? ? ? >ss dir
? ? ? ? $/ProductSolutions:
? ? ? ? No items found under $/ProductSolutions
. 添加
? ? ? ? #VS IDE添加 ? 創(chuàng)建好解決方案、工程,將解決方案添加到源代碼管理
? ? ? ? >ss Add . -R,把當(dāng)前目錄的所有文件及文件夾(包括子文件夾、文件)添加到當(dāng)前項目
. Label
? ? ? ? >ss Label -C"Initially add at 2008.9.22" -LV1
? ? ? ? UtilitiesSolution
? ? ? ? # 標記當(dāng)前Project
? ? ? ? # -V 這個選項是指定要操作的項目的版本,如果要制定label(如果get時),采用參數(shù) -VL, 后面帶label號
? ? ? ??
? ? ? ? >ss label $/CommonSolutions/SccFileCleanerSln -C@SFCS.txt -VL080923V1.0 -L080923V1.0 -i-y
? ? ? ? # 將刪除label,label comment無法修改
?
. 指定版本
? ? ? ? -V14 ? ? ? ? ? ? ? ? ? ?Displays version 14.?
? ? ? ? -Vd2-29-92 ? ? ? ? ? ? ?Displays the version dated 2-29-92.?
? ? ? ? "-VLFinal Beta" ? ? ? ? Displays the version with the label Final Beta.
? ? ? ? 另一種方法
? ? ? ? Help.C;14 ? ? ? ? ? ? ? Displays version 14 of Help.C.?
? ? ? ? Show.prg;d2-29-92 ? ? ? Displays Show.prg as it appeared on 2-29-92.?
? ? ? ? "$/CW;L Beta 1" ? ? ? ? Displays the version of the project $/CW with the label Beta 1.
. 查看狀態(tài)
? ? ? ? >ss status modify.txt
? ? ? ? modify.txt ? ? ? ? ?user ? ? ? ? Exc ?08-09-22 19:45
? ? ? ? F:/CompanyDEV/CommonSolutions/UtilitiesSolution/Utilities
. CheckIn
? ? ? ? >ss checkin modify.txt
? ? ? ? $/CommonSolutions/UtilitiesSolution/Utilities/modify.txt was checked out from F:/CompanyDEV/CommonSolutions/UtilitiesSolution/Utilities, not from the current folder.
? ? ? ? Continue anyway?(Y/N)n
? ? ? ? >f:
? ? ? ? F:/>cd F:/CompanyDEV/CommonSolutions/UtilitiesSolution/Utilities
? ? ? ? F:/CompanyDEV/CommonSolutions/UtilitiesSolution/Utilities>ss checkin modify.txt
? ? ? ? Comment for modify.txt:
? ? ? ? # 不加-C提示輸入comment
. Show history
? ? ? ? >ss history modify.txt -#3
? ? ? ? # 顯示某項的最近3個歷史
? ? ? ? >ss history $/ -L
? ? ? ? # 查看目錄中有l(wèi)abel的項的歷史
? ? ? ? >ss history $/ -L -R
? ? ? ? # 查看目錄中文件及子目錄中文件有l(wèi)abel的項的歷史
? ? ? ? # 加label注釋的時候,說明:標記的對象,狀態(tài),原因,日期
? ? ? ? >ss history $/test -vd3/03/95;3:00p~3/03/95;9:00a
? ? ? ? # 查看$/test中3/3/95,9:00a - 3:00p的歷史。時間從大到小
. Get
? ? ? ? >ss get * -R -VL080923llyV1
? ? ? ? # 指定Project label, 獲取當(dāng)前Project中文件包括subprojects
? ? ? ? >ss get * -R -VL080923llyV1 -GLf:/test/CommonSolutions/UtilitiesSolution2
? ? ? ? Set f:/test/CommonSolutions/UtilitiesSolution2 as the default folder for project
? ? ? ? ?$/CommonSolutions/UtilitiesSolution?(Y/N)n
? ? ? ? # 指定本地目錄采用參數(shù) -GL,后面帶本地目錄, 必須保證本地目錄存在, 會提示是否將其設(shè)置為默認working folder, 可以用-I-n設(shè)置自動回答No
? ? ? ? >ss get * -R -VL080923llyV1 -GLf:/test/CommonSolutions/UtilitiesSolution2 -i-n
? ? ? ? # -W 獲取writeable文件備份
. View
? ? ? ? >ss view modify.txt
. whoami
? ? ? ? >ss whoami
. workfold
? ? ? ? >ss workfold $/prject c:/project
? ? ? ? # Note that both the project and the directory are optional. If either one is not specified, the current project or folder is used.
. Force_dir
? ? ? ? Force_dir = true , get的文件放到設(shè)置的work folder中,否這獲取到當(dāng)前folder
. 注釋
? ? ? ? -C ? ? ? ? All items receive the same comment
? ? ? ? -C- ? ? ? ?No comment is used.
? ? ? ? -Ctext
? ? ? ? -C@file.txt ? ? ? ?Uses the contents of File.txt as the comment for all items
========
總結(jié)
以上是生活随笔為你收集整理的版本管理器命令行总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Win2000 DDK 附带例子概览(图
- 下一篇: 图解在Matlab中初步操作一下3D图形