svn終端命令收集(補(bǔ)充中)

這些都是平時(shí)自己在備忘錄里嗎瞎寫(xiě)的紀(jì)錄,懶得整理,估計(jì)也就是只有我自己能看懂。

svn命令行創(chuàng)建和刪除分支和tags

http://blog.csdn.net/yangzhongxuan/article/details/7519948

查看文件里面的所有文件,包含隱藏文件

ls -al

http://blog.csdn.net/yangzhongxuan/article/details/7519948

pod install --verbose --no-repo-update

svn管理:

刪除一個(gè)文件夾中所有子文件里面的隱藏文件:

find . -type d -name ".svn"|xargs rm -rf

刪除一個(gè)文件:

rm -f filename

查看文件里面的所有文件,包含隱藏文件

ls -al

上傳文件:

step1:打開(kāi)終端

step2:找到要上傳的文件的存放路徑(我的這個(gè)文件夾叫? FunnyStoryAndJokes1.0.2,存放路徑為:/Users/qx/Documents)

step3:回到終端,用 cd /Users/qx/Documents??? 命令進(jìn)入到存放FunnyStoryAndJokes1.0.2的Documents目錄下

step4:用這條命令svn import -m "New Import" FunnyStoryAndJokes1.0.2/ http://192.168.202.141:8000/svn/gaoxiaodaquan/iOS/FunnyStoryAndJokes1.0.2

(其中http前面的FunnyStoryAndJokes1.0.2是指當(dāng)前Documents目錄下的文件夾,就是你要上傳的文件夾,http://就是你的遠(yuǎn)程服務(wù)器地址,http://鏈接最后面那個(gè)FunnyStoryAndJokes1.0.2是你在服務(wù)器新建的目錄名稱)

trunk:主干,是日常開(kāi)發(fā)進(jìn)行的地方。

branches:分支。一些階段性的release版本,這些版本是可以繼續(xù)進(jìn)行開(kāi)發(fā)和維護(hù)的,則放在branches目錄中,里面的版本全部基于trunk基礎(chǔ)上建立的。

tags:表示標(biāo)簽存放的目錄,一般為只讀寫(xiě),存儲(chǔ)階段行發(fā)布版本,一般是基于分支上建立。

打一個(gè)tag:

svn copy http://www.baidu.com/iOS/trunk/ http://www.baidu.com/iOS/tags/demo/? -m”添加天氣和車幫手功能”

打一個(gè)分支:

svn cp http://www.baidu.com-iOS/trunk/demo/ http://www.baidu.com-iOS/branches/demo -m "修改內(nèi)存泄漏問(wèn)題"

刪除一個(gè)分支:

$ svn rm http://www.baidu.com/iOS/branches/demo -m"刪除臨時(shí)支付分支"

查看目錄:

$ svn ls http://www.baidu.com/iOS/trunk

更新主干上的最新代碼到分支上:

cd br_feature001

svn merge http://svn_server/xxx_repository/trunk

SVN合并分支到trunk:

cd 到trunk StarCar

cd /Users/LYPC/Documents/tttttu/trunk

svn merge --reintegrate? http://www.baidu.com/iOS/branches/demo/

http://www.baidu.com/iOS/branches/demo/

svn擴(kuò)展命令那點(diǎn)事

find . -type d -name ".svn"|xargs rm -rf

將文件checkout到本地目錄

svn co http://www.baidu.com/iOS/branches/demo/


導(dǎo)出(導(dǎo)出一個(gè)干凈的不帶.svn文件夾的目錄樹(shù))

svn? export? [-r 版本號(hào)]? http://路徑(目錄或文件的全路徑)

檢出指定版本好的代碼:svn co -r10403 http://http://www.baidu.com/iOS/trunk/demo/

6、刪除文件

svn delete svn://路徑(目錄或文件的全路徑) -m “刪除備注信息文本”

推薦如下操作:

svn delete 文件名

svn ci -m “刪除備注信息文本”

例子:

svn delete svn://localhost/testapp/test.php -m “刪除測(cè)試文件test.php”

推薦如下操作:

svn delete test.php

svn ci -m “刪除測(cè)試文件test.php”

7、加鎖/解鎖

svn lock -m “加鎖備注信息文本“ [--force] 文件名

svn unlock 文件名

例子:

svn lock -m “鎖信測(cè)試用test.php文件“ test.php

svn unlock test.php

svn log -r {2011-9-27}:{2011-9-29} -v

查的是27,28兩天的

[CMD-SVN查看版本修改記錄]

問(wèn)題:想查看某個(gè)版本的具體修做了哪些改動(dòng)?

方法:svn diff -r r1:(r1-1)? (filename)

filename可選,如果加上就表示查看該版本對(duì)該filename做了哪些改動(dòng)。

-c r1選項(xiàng)等同于 -r r1:(r1-1)

[查看最近N條log]

問(wèn)題:想查看最近N條log,看看是近一次commit的情況。

方法:svn log -lN

-l選項(xiàng)為limitation的意思,后面的N為數(shù)字,例如3,則顯示最近3條log。

參考:http://blog.163.com/lgh_2002/blog/static/4401752620115151040235/

svn st 查看文件狀態(tài) M-修改 ?D-刪除 A-添加 U-更新 ??-未知狀態(tài) ?!-警告 ?C-沖突

更新:svn update時(shí)解決沖突問(wèn)題:

顯示選擇內(nèi)容的時(shí)候,各個(gè)選擇項(xiàng)的解釋:

(p)? postpone? ? – mark the conflict to be resolved later //讓文件在更新完成之后保持沖突狀態(tài)。

(df) diff-full? – show all changes made to merged file //使用標(biāo)準(zhǔn)區(qū)別格式顯示base修訂版本和沖突文件本身的區(qū)別。

(e)? edit? ? ? ? – change merged file in an editor //用你喜歡的編輯器打開(kāi)沖突的文件,編輯器是環(huán)境變量EDITOR設(shè)置的。

(r)? resolved? ? – accept merged version of file //完成文件編輯之后,通知svn你已經(jīng)解決了文件的沖突,它必須接受當(dāng)前的內(nèi)容—從本質(zhì)上講就是你已經(jīng)“解決了”沖突。

(mf) mine-full? – accept my version of entire file (ignore their change//丟棄新從服務(wù)器接收的變更,并只使用你查看文件的本地修改。

(tf) theirs-full – accept their version of entire file (lose my changes)//丟棄你對(duì)查看文件的本地修改,只使用從服務(wù)器新接收的變更。

(l)? launch? ? ? – launch external tool to resolve conflict//啟動(dòng)一個(gè)外置程序來(lái)執(zhí)行沖突解決,這需要一些預(yù)先的準(zhǔn)備。

(h)? help? ? ? ? – show this list //顯示所有在沖突解決時(shí)可能使用的命令。

http://www.letuknowit.com/archives/svn-conflict-resolution/

(p) postpone? ? ? ? ? 暫時(shí)推后處理,我可能要和那個(gè)和我沖突的家伙商量一番

(df) diff-full? ? ? ? 把所有的修改列出來(lái),比比看

(e) edit? ? ? ? ? ? ? 直接編輯沖突的文件

(mc) mine-conflict? ? 如果你很有自信可以只用你的修改,把別人的修改干掉

(tc) theirs-conflict? 底氣不足,還是用別人修改的吧

(s) show all options? 顯示其他可用的命令

刪除svn控制的文件時(shí):

svn rm --force myFileName

svn commit -m "刪除myFileName文件"

?的文件:

svn add myFileName

替換項(xiàng)目:

查看某個(gè)路徑下的所有項(xiàng)目:

svn ls? ? ? http://www.baidu.com/ios/

查看項(xiàng)目里面文件:

svn ls http://www.baidu.com/ios/demo

刪除舊項(xiàng)目:

svn del http://www.baidu.com/ios/demo -m "刪除原統(tǒng)計(jì)報(bào)表項(xiàng)目"

上傳新項(xiàng)目:

svn import /Users/LYPC/Documents/項(xiàng)目 http://www.baidu.com/ios/ -m "上傳運(yùn)維晴雨表”

查看項(xiàng)目歷時(shí)修改備注:

svn log? http://www.baidu.com/ios/demo

svn info 查看當(dāng)前本地版本信息

svn需要忽略的文件

http://www.lxweimin.com/p/4dc64a4052db

.xcodeproj里的文件大體上有3種:項(xiàng)目文件單個(gè)用戶的文件跟workspace相關(guān)的文件

項(xiàng)目文件,需要同步;單個(gè)用戶的文件,不需要同步;跟workspace相關(guān)的文件,視有沒(méi)有深入使用workspace而定。總結(jié)2:需要同步的文件:project.pbxproj文件xcsharedata目錄

不需要同步的文件user.pbxuser文件user.mode1v3/user.mode2v3文件xcuserdata目錄

視workspace情況而定的文件:.xcworkspace目錄.xccheckout文件

文/coderLee(簡(jiǎn)書(shū)作者)

原文鏈接:http://www.lxweimin.com/p/4dc64a4052db

著作權(quán)歸作者所有,轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),并標(biāo)注“簡(jiǎn)書(shū)作者”。

svn命令忽略文件:

http://blog.csdn.net/samxx8/article/details/51244265

svn如何屏蔽/忽略不需要版本控制的文件

http://godera.blog.163.com/blog/static/215023060201312011112966/

svn 本地版本控制的文件svn版本與電腦帶的svn版本不一致的時(shí)候, 報(bào)錯(cuò)

svn: E155036: Please see the 'svn upgrade' command

svn: E155036: The working copy at '/Users/LYPC/Documents/公司項(xiàng)目/StarCarShop'

is too old (format 29) to work with client version '1.9.5 (r1770682)' (expects format 31). You need to upgrade the working copy first.

解決參考鏈接:

http://blog.csdn.net/centralperk/article/details/48736031

解決方法:在目錄下執(zhí)行命令:svn upgrade

1. 取消Add/Delete

取消文件

svn revert 文件名

取消目錄

svn revert --depth=infinity 目錄名

2. 回退版本

方法1: 用svn merge

1) 先 svn up,保證更新到最新的版本,如20;

2) 然后用 svn log ,查看歷史修改,找出要恢復(fù)的版本,如10 。如果想要更詳細(xì)的了解情況,可以使用svn diff -r 10:20 [文件或目錄](méi);

3) 回滾到版本號(hào)10:svn merge -r 20:10 [文件或目錄](méi),注意版本號(hào)之間的順序,這個(gè)叫反向合并;

4) 查看當(dāng)前工作版本中的文件,如test.cpp和版本號(hào)10中文件的差別:svn diff -r 10 test.cpp, 有差別則手動(dòng)改之;

5) 若無(wú)差別,則提交:svn ci -m“back to r 10,xxxxx” [文件或目錄](méi)。這時(shí)svn庫(kù)中會(huì)生成新的版本,如21。

方法2: 用svn up

前2步如方法1,然后直接 svn up -r 10。當(dāng)前的工作版本就是版本10了。但是注意,這時(shí)svn庫(kù)中并不會(huì)生成新的版本,下次svn up之后,還是會(huì)回到當(dāng)前的版本。

========================

改動(dòng)已經(jīng)被提交(commit)。

用svn merge命令來(lái)進(jìn)行回滾。

回滾的操作過(guò)程如下:

1、保證我們拿到的是最新代碼:

svn update

假設(shè)最新版本號(hào)是28。

2、然后找出要回滾的確切版本號(hào):

svn log

假設(shè)根據(jù)svn log日志查出要回滾的版本號(hào)是25,此處的something可以是文件、目錄或整個(gè)項(xiàng)目

如果想要更詳細(xì)的了解情況,可以使用svn diff -r 28:25 ""

svn log -v -r 34 查看當(dāng)前文件夾下某個(gè)版本的修改文件列表信息

3、回滾到版本號(hào)25:r10476

svn merge -r 28:25 ""

為了保險(xiǎn)起見(jiàn),再次確認(rèn)回滾的結(jié)果:

svn diff ""

發(fā)現(xiàn)正確無(wú)誤,提交。

4、提交回滾:

svn commit -m "Revert revision from r28 to r25,because of ..."

提交后版本變成了29。

將以上操作總結(jié)為三條如下:

1. svn update,svn log,找到最新版本(latest revision)

2. 找到自己想要回滾的版本號(hào)(rollbak revision)

3. 用svn merge來(lái)回滾: svn merge -r : something

更新至某個(gè)版本

svn update -r 版本號(hào)

svn help update

update (up): 將版本庫(kù)的修改合并到工作副本中。

用法: update [PATH...]

如果沒(méi)有指定版本,則將工作副本更新到 HEAD 版本。否則同步到 -r 選項(xiàng)所

指定的版本。

每更新一項(xiàng)就輸出一行信息,使用首字符來(lái)報(bào)告執(zhí)行的動(dòng)作。這些字符的含義是:

A 已添加

D 已刪除

U 已更新

C 合并沖突

G 合并成功

E 已存在

R 已替換

第一列字符報(bào)告項(xiàng)目本身。

第二列表示報(bào)告項(xiàng)目屬性。

第三列中的字符“B”表示此文件上的鎖被終止或竊取。

第四列中的字符“C”表示樹(shù)沖突,同時(shí)“C”出現(xiàn)在第一列或第二列,分別表示

內(nèi)容沖突或?qū)傩詻_突。

如果使用了 “--force” 選項(xiàng),在工作副本中未版本控制的障礙路徑,不會(huì)自動(dòng)

導(dǎo)致簽出失敗。 如果障礙路徑與版本庫(kù)中的對(duì)應(yīng)路徑類型相同(文件或目錄),它

將成為受版本控制的路徑,但是內(nèi)容不改變。它意味著障礙路徑的子孫,也可能

是障礙路徑,同樣會(huì)受版本控制。對(duì)于障礙路徑中的文件,如果與版本庫(kù)內(nèi)的

不同,將視為工作副本發(fā)生本地修改。版本庫(kù)中的所有屬性都應(yīng)用于障礙路徑。

用第一列字符 “E” 來(lái)報(bào)告障礙路徑。

如果工作副本中并沒(méi)有指定的更新目標(biāo),但是有其父目錄,那么就在指定路徑上

將目標(biāo)檢出到其父目錄中。如果使用了選項(xiàng) --parents,就會(huì)創(chuàng)建目標(biāo)的所有不

存在的父目錄 (使用選項(xiàng) --depth=empty)。

使用“--set-depth”選項(xiàng)設(shè)置此操作目標(biāo)的工作副本之新深度。

有效選項(xiàng):

-r [--revision] ARG : ARG (一些命令也接受ARG1:ARG2范圍)

版本參數(shù)可以是如下之一:

NUMBER 版本號(hào)

'{' DATE '}' 在指定時(shí)間以后的版本

'HEAD' 版本庫(kù)中的最新版本

'BASE' 工作副本的基線版本

'COMMITTED' 最后提交或基線之前

'PREV' COMMITTED的前一版本

-N [--non-recursive] : 過(guò)時(shí);嘗試 --depth=files 或 --depth=immediates

--depth ARG : 限制操作深度是 ARG ('empty', 'files',

'immediates', 或 'infinity')

--set-depth ARG : 設(shè)置工作副本的新深度為 ARG('exclude',

'empty', 'files', 'immediates', 或 'infinity')

-q [--quiet] : 不打印信息,或只打印概要信息

--diff3-cmd ARG : 使用 ARG 作為合并命令

--force : 強(qiáng)制操作運(yùn)行

--ignore-externals : 忽略外部項(xiàng)目

--changelist [--cl] ARG : 只能對(duì)修改列表 ARG 的成員操作

--editor-cmd ARG : 使用 ARG 作為外部編輯器

--accept ARG : 指定自動(dòng)解決沖突動(dòng)作

('postpone', 'working', 'base', 'mine-conflict',

'theirs-conflict', 'mine-full', 'theirs-full',

'edit', 'launch')

(shorthand: 'p', 'mc', 'tc', 'mf', 'tf', 'e', 'l')

--parents : 創(chuàng)建中間目錄

全局選項(xiàng):

--username ARG : 指定用戶名稱 ARG

--password ARG : 指定密碼 ARG

--no-auth-cache : 不要緩存用戶認(rèn)證令牌

--non-interactive : 不要交互提示

--trust-server-cert : 不提示的接受未知的證書(shū)頒發(fā)機(jī)構(gòu)發(fā)行的 SSL 服務(wù)器證書(shū)(只用于選項(xiàng) “--non-interactive”)

--config-dir ARG : 從目錄 ARG 讀取用戶配置文件

--config-option ARG : 以下屬格式設(shè)置用戶配置選項(xiàng):

FILE:SECTION:OPTION=[VALUE]

例如:

servers:global:http-library=serf

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • iOS 開(kāi)發(fā) SVN 版本控制器 更多技術(shù)交流請(qǐng)加群 iOS技術(shù)聯(lián)盟 27512466 SVN是Subversio...
    Sunny_Fight閱讀 8,842評(píng)論 7 63
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,991評(píng)論 19 139
  • 命令的使用 1、檢出 svn cohttp://路徑(目錄或文件的全路徑)[本地目錄全路徑] --username...
    小李龍彪閱讀 4,457評(píng)論 0 9
  • WC:Working Copy 你的工作區(qū) Versioned:受控的;受版本控制的 SVN是什么? SVN是開(kāi)源...
    Programmer客棧閱讀 700評(píng)論 0 4
  • SVN版本:1.5 及更新版本 名詞說(shuō)明: WC:Working Copy 你的工作區(qū) Versioned:受控的...
    日風(fēng)和閱讀 4,338評(píng)論 1 23