SVN(一次檢出&二次檢出)


一次檢出:

》進入經歷文件夾

》輸入svn checkout指令

》輸入電腦密碼

》輸入用戶名

》輸入密碼

》檢出成功

 

第二次檢出:

》進入小濤文件夾

》輸入svn checkout指令

》檢出成功

 

只要輸入過一次賬號密碼后, 終端會自動記錄我們的密碼

 

通過指定的賬號密碼檢出

svn checkout http://192.168.15.155/svn/weibo/ --username=ls --password=ls

 

 

 

 

 

SVN的本質是通過一個文件夾來管理源代碼

 

默認情況下, 用於管理源代碼的文件夾是隱藏的, 這個隱藏文件夾的名稱叫做.svn

 

 

 

 

 

注意: 新建文件或文件夾之后如果直接提交(直接commit)會報如下錯誤:

 

is not under version control

 

該錯誤的含義是: 提示我們提交的文件沒有納入版本控制

 

 

 

注意: 在提交代碼時必須寫上注釋(認真寫), 否則回報如下錯誤

 

Could not use external editor to fetch log message;

 

 

 

 

 

注意: svn add只會將文件添加到本地, 不會添加到服務器

 

 

 

 

 

注意:如果說利用SVN管理源代碼, 就不能直接在項目中刪除源文件

 

 

 

 

 

如果修改文件之后, 並且文件沒有提交commit 想反悔,可以使用SVN revert指令讓文件回到上一次提交時的狀態

 

 

 

 

 

update除了可以更新服務器最新的代碼以外還可以更新到指定版本。

 

每次提交代碼之后, SVN的版本號都會自動加1. 正式因為版本每次會自動加1 也就是說版本號是唯一的。 所以我們可以通過版本號更新到指定版本的代碼

 

 

 

 

 

版本控制器中最常見的兩個問題:

 

1.超時

 

SVN 使用SVN有一個原則: 先更新再提交

 

只有本地的版本號大於等於服務器的版本號時才能提交, 否則會報一個out of data錯誤;

 

 

 

ls:R8

 

manager :R11

 

服務器: R11

 

 

 

 

 

2.沖突:

 

當多個人修改了同一個文件的同一行代碼會導致沖突

 

我: main.c  11  123

 

其它人: main.c 11 abc

 

其它人先提交了代碼

 

我再提交代碼就會有沖突,

 

Conflict discovered in 提示我們如何解決問題

 

(mc) mine-conflict,  代表用我們的代碼替換服務器的代碼。

 

本地的代碼只保留我們自己寫的

 

 

 

(tc) theirs-conflict, 代表用服務器代碼替換我們的代碼

 

本地的代碼只保留服務器的, 會自動刪除我們的

 

 

 

(p) postpone 自己手動解決。

 

本地文件中會同時保留服務器代碼和本地代碼

 

會在本地創建3個備份

 

main.c.mine 備課自己最新的代碼

 

main.c.r17 本地修改之前的版本

 

main.c.r18 服務器最新版本

 

<<<<<<<  ======中間存放的是我們自己修改的代碼

 

=======   >>>>>>> 中間存放的是服務器最新的代碼

 

 

 

注意: 手動解決完沖突之后, 需要告訴SVN服務器我們已經解決沖突了, 這樣才能保證數據的安全性和SVN的可靠性

 

svn resolved 文件名稱

 

 

 

—————————

 

 

 

注意: 在工具中Repositories中的倉庫是服務器的倉庫

 

 

 

1.新建一個本地倉庫

$ git init

 

2.配置倉庫

》告訴git你是誰

git config user.name lnj

》告訴git怎么聯系你

git config user.email lnj@itcast.cn

 

》上面一種配置方式是一次性的配置, 會配置到被管理文件的。git文件夾下

》下面一種配置方式是一勞永逸的方式:

git config --global user.name lmj

git config --global user.email lmj@itcast.cn

 

》如何學習git指令

>學習git指令和SVN指令的學習其實是一樣的, 只不過展現的方式不太一樣, git是通過使用指南的方式告訴我們某一個指令如何使用

>這個指南其實是一個不可編輯的vim

Q退出指南

按空格下一頁

control + B 上一頁

/需要搜索的內容 可以進行搜索

 

 

git常規指令

git status 查看文件狀態

git add 添加文件到暫存區

git commit 文件名稱   添加文件到本地倉庫

注意:如果沒有在commit后面加上 -m說明修改了什么, 會自動進入vim界面, 要求我們輸入修改信息

按鍵盤上的 i 代表開始輸入內容

輸入完畢之后按 esc 然后按 wq

所以: 如果以后在終端中提交最好在后面加上-m

》注意: git中的addSVN中的add不太一樣, SVN中只需要add一次, git中每次新建或者修改之后都需要重新add

 

1.為添加之前的顏色

紅色 代表在工作區

2.添加到暫存區之后的顏色

綠色 代碼在暫存區

 

 

》注意: git默認沒有簡寫指令

》注意: 一般情況下不建議自定義簡寫指令

git中的簡寫稱之為起別名

 

> 查看log

git log 文件名

》注意: GIt中的版本號是一個40的哈希值, SVN中的版本號是一個遞增的整數

》已經提交

git reset —hard HEAD^ 返回上一個版本

其中—hard代表強制重置

git reset —hard 版本號(只需要寫前7位)

》未提交

git checkout 文件名 回退到上一次提交的版本

git reset —hard HEAD  回退到上一次提交的版, 注意HEAD后面沒有尖號^

 

 

c9ad690 HEAD@{0}: commit: main.c

 

7026f99 HEAD@{1}: commit: 輸出結果

 

e950c89 HEAD@{2}: commit: 新增輸入

 

c7bf91c HEAD@{3}: commit: 添加變量

 

cbd9e52 HEAD@{4}: commit: 刪除print函數

 

45ea44d HEAD@{5}: commit: 添加了printf函數

 

0da06d8 HEAD@{6}: commit (initial): i

 

 

 

>git reflog  查看所有修改信息(所有版本)

 

 

》查看文件被修改的什么地方

git diff 文件名

》如果顯示綠色代表新增

》如果顯示紅色代表刪除

 

 

遠程倉庫

SVN需要一個單獨的服務器

Git不需要: 文件中、U盤中、雲上、githubOSChina...

 

1.新建git遠程倉庫

git init —bare

注意: 這個倉庫僅僅是用於管理代碼, 不參與開發

 

2.項目經理初始化項目

2.1先克隆一份空得倉庫到本地

git clone /Users/apple/Desktop/working/公司遠程倉庫

 

2.2忽略不需要加入版本控制器的文件以及文件夾

.gitignore

注意: 配置忽略文件只需要到github上搜索.gitignore拷貝別人寫好的代碼即可

配置.gitignore一定要在和.git隱藏文件夾同一級的目錄下

2.3生成好.gitignore文件之后, 還需要將.gitignore文件添加到版本控制

git add  .gitignore

git commit .gitignore -m””

 

2.4新建項目

source conrol—>commit  將代碼提交到本地倉庫

source conrol—>push 將代碼提交到遠程倉庫

 

 

git中默認就會創建一個分支, 這個分支叫做origin/master 相當於svn中的trunk

 

 

專業人員只需要在git倉庫的hooks文件夾中寫一些指令, 就可以完成自動測試(壓力測試、自動測試、集成測試、冒煙測試、。。。)

 

 

SVN一樣, 如果服務器倉庫的代碼被修改了, 我們再提交代碼也會報錯。

fetch first == out of data

 

總結:

gitsvn最大的區別

1.git每次修改新增都需要add

2.git每台電腦都有一個倉庫

3.git是先提交到本地倉庫, 再提交到遠程倉庫

 

 

 

 

新人服務器搭建

1.新建一個新人服務器

2.初始化倉庫

git init --bare

3.添加一個新的遠程倉庫

source control —> master —>config —>remotes —>add —> add remote

4.將經理最新的代碼提交到新人服務器

5.經理分配新人服務器的地址給新人

 

 

 

GIT的分支管理

》在本地代碼庫給項目打上一個標簽

git tag -a v1.0 -m 'Version 1.0’

》查看當前標簽

git tag

注意: 此時此刻打上的這個標簽僅僅是一個本地標簽。(和服務器沒有關系)

》將標簽添推送到遠程代碼庫中

git push origin v1.0

 

 

1.開發

2.發布

3.保存穩定版本

4.繼續開發

5.出現bug

6.分配員工到分支上修復bug

>員工從服務器下載最新代碼

》員工利用git checkout v1.0指令快速切換到1.0版本

》根據提示:開啟一個新的分支開始修復代碼

git checkout -b 1.0bug_fix

 

7.合並修復后的代碼到主線

8.備份穩定版本

 

 

通過Xcode將代碼提交到github上, 把倉庫放在github

 

 

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

1.注冊一個github賬號

2.配置SSH Keys 只要配置了SSH Keys就可以和github無縫銜接

 

》點擊昵稱來到個人主頁

點擊主頁中的設置(setting

點擊SSH Keys

》點擊 generating SSH keys

 

1.檢查本地的ssh keys

用戶目錄 ls -al ~/.ssh

2.如果文件夾不存在需要手動創建一個

mkdir .ssh

 

3.根據github的提示2生成ssh keys

.ssh目錄下執行 ssh-keygen -t rsa -C "your_email@example.com”

輸入完成之后連續按下回車, 知道出現牛逼的圖形位置

4.生成完公鑰和私鑰之后輸入

ls -la查看是否生成成功   id_rsa(私鑰) id_rsa.pub(公鑰)

5.根據提示3獲得公鑰

pbcopy < ~/.ssh/id_rsa.pub

6.點擊 setting — ssh key —>add ssh key

將剛才獲取到得公鑰添加進去

 

7.更具github4步提示, 驗證公鑰

驗證成功網頁上的灰色圓點會變成綠色

 

8.拷貝到公鑰之后打開github主頁

》點擊倉庫(Repositories

》再點擊new來到github創建倉庫界面

 

9.通過github提供的地址下載一個空得倉庫到本地

》創建一個新的項目到本地倉庫文件夾中

》利用Xcode提交代碼到github

》注意: 要求輸入用戶名密碼時候, 輸入的是github上顯示的昵稱而不是登錄賬號

 

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

 

現實生活:

運動場 == 物理仿真器

跑步 == 物理仿真行為

== 仿真元素

 

// 1.創建物理仿真器

// 2.創建物理仿真行為

// 3.將物理仿真行為添加到仿真器中

 

 

1.可以將需要導航的位置丟給系統自帶的APP進行導航

2.發送網絡請求到公司服務器獲取導航數據, 然后自己手動繪制導航

3.利用三方SDK實現導航(百度)

 

 

>當點擊開始導航時獲取用戶輸入的起點和終點

>利用GEO對象進行地理編碼獲取到地標對象(CLPlacemark )

>再利用獲取到的地標對象(CLPlacemark)創建MKPlacemark

>利用MKPlacemark創建起點的item

 

>終點和起點邏輯一樣

 

 

 

1.發送請求到蘋果的服務器獲取導航路線信息

2.根據服務器返回的路線信息自己繪制導航路線

 

 

百度地圖在2.5以前是不支持64位手機

 

 

注意: 想要使用百度地圖SDK必須成為百度的開發者, 並且創建自己的應用

>創建好應用之后就可以拿到訪問百度地圖的KEY

>將創建應用時填寫的安全碼填入到應用程序的bundle identifier

應用程序中的bundle identifier必須和百度開發者網站上的安全嗎一致

 

libbaidumapapi.a靜態庫==百度以及實現好的功能

注意: 靜態庫是區分真機和模擬器的, 如果在真機上使用模擬器的靜態庫是不可以運行的

 

1.> "_SCNetworkReachabilityCreateWithName", referenced from:

代表靜態庫中依賴的一些框架沒有導入.如果靜態庫中用到了框架就必須導入

 

2.> "std::terminate()", referenced from:

但凡看到錯誤提示中提示兩個冒號C++代碼, 默認情況下Xcode創建的工程是不支持C++.

如何解決: 將工程中任意一個文件的后綴改為.MM即可

 

.c  C代碼

.cpp C++代碼

.m  C代碼 + OC代碼

.MM C代碼 + OC代碼 + C++代碼

 

3.>Undefined symbols for architecture x86_64:

以后但凡看到這個錯誤, 一般是指用到的三方框架不支持64位手機

 

 

4.>注意:如果使用的Xcode6創建的工程, 想要成功的集成百度地圖,還需要手動的添加一個Bundle display name

 

網易

>授權

>詳情

新浪

 

判斷網易是通過點擊授權按鈕跳轉過來的,

還是通過點擊詳情按鈕跳轉過來的

 

 

SSO?

如果我們的手機上已經安裝了需要分享的平台客戶端, 會直接打開客戶端要求用戶授權, 而不需要用戶輸入賬號密碼

 

SSO?

如果我們的手機上已經安裝了需要分享的平台客戶端, 會直接打開客戶端要求用戶授權, 而不需要用戶輸入賬號密碼

 

 

 

 

如果控件有默認的內容(寬高), 我們只需設置autoalyoutX/Y, autolayout會自動計算出寬高

 

Xcode6Storyboard變成豆腐干的目的:

Xcode6之前, 如果要同時適配iPhoneiPad需要編寫兩個Storyboard

>Main_iPhone. Storyboard

>Main_iPad. Storyboard

能夠在一個界面中同時配置iPhoneiPad

 

 

Xcode6dimages.xcassets可以和Storyboard一樣, 可以指定圖片在什么情況下顯示

 

 

*代表Any 任意的

-代表壓縮的

+正常的

 

 

iOS8開始, 蘋果為了拉攏其它語言的程序員, 推出一門全新的牛逼的語言, swift. 長相和其它各種語言都極其相似. swift和其它語言一樣提出了一個叫做命名空間的概念, 所以蘋果取消了類前綴的設置.

but, 如果老項目繼續維護, 那么設置類前綴還是必須的, 也就是說如果繼續使用OC編碼, 類前綴還是必須的

 

 

Xcode6開始, 蘋果取消了PCH文件, 也就是說不推薦我們使用PCH文件.

 

Xcode6為了提高用戶的隱私安全, 將應用程(main bundle)和沙河的位置(doc cache ..)改變了

 

隨着項目的業務邏輯越來越復雜

隨着項目越來越大

那么我們Storybard中得控制器就越來越多, 就越來越難以維護

可以將復雜的事情簡單化

拆分

 

 

點擊消息界面的詳情按鈕模態彈出詳情界面(紅色)

點擊詳情界面的返回按鈕就讓詳情界面消失

 

如果控件有默認的內容(寬高), 我們只需設置autoalyoutX/Y, autolayout會自動計算出寬高

 

Xcode6Storyboard變成豆腐干的目的:

Xcode6之前, 如果要同時適配iPhoneiPad需要編寫兩個Storyboard

>Main_iPhone. Storyboard

>Main_iPad. Storyboard

能夠在一個界面中同時配置iPhoneiPad

 

 

Xcode6dimages.xcassets可以和Storyboard一樣, 可以指定圖片在什么情況下顯示

 

 

*代表Any 任意的

-代表壓縮的

+正常的

 

 

iOS8開始, 蘋果為了拉攏其它語言的程序員, 推出一門全新的牛逼的語言, swift. 長相和其它各種語言都極其相似. swift和其它語言一樣提出了一個叫做命名空間的概念, 所以蘋果取消了類前綴的設置.

but, 如果老項目繼續維護, 那么設置類前綴還是必須的, 也就是說如果繼續使用OC編碼, 類前綴還是必須的

 

 

Xcode6開始, 蘋果取消了PCH文件, 也就是說不推薦我們使用PCH文件.

 

Xcode6為了提高用戶的隱私安全, 將應用程(main bundle)和沙河的位置(doc cache ..)改變了

 

隨着項目的業務邏輯越來越復雜

隨着項目越來越大

那么我們Storybard中得控制器就越來越多, 就越來越難以維護

可以將復雜的事情簡單化

拆分

 

 

點擊消息界面的詳情按鈕模態彈出詳情界面(紅色)

點擊詳情界面的返回按鈕就讓詳情界面消失

 

 

 

 

 

AVAudioPlayer  只能播放本地音樂

AVPlayer     遠程音樂

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM