這些都是平時(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