iOS開發版本控制--git使用

現在公司仍然用的是SVN,究其原因可能是領導層認為SVN比較“安全”,因為,給你一個內網IP你在除了公司外的地方無法對項目作出人和修改。但是現在看好多公司都在用git,覺得這個git一定有它的過人之處,所以就來學習一下吧!

一、 安裝

我們用的都是Mac,所以可以直接通過homebrew安裝Git,具體方法請參考homebrew的文檔:http://brew.sh/

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

然后再檢查

$ git version // 判斷是否安裝成功,查看版本號

然后,設置你的個人信息

$ git config --global user.name "YourName"

$ git config --global user.email "YourEmail"

注意'git config'命令的'--global'參數,用了這個參數,表示你這臺機器上所有的Git倉庫都會使用這個配置,當然也可以對某個倉庫指定不同的用戶名和Email地址。

二、基本使用

1、可以新建一個文件夾,mkdir testGit, 然后cd testGit

$ git init? // 創建倉庫

Initialized empty Git repository in /Users/testGit/.git/

2、增加你需要改變的東西,放到testGit中去,添加到倉庫中去

$ git add .? // 注意 . 是增加所有的

3、提交到倉庫中去 -m “這里面是需要注釋的內容”

$ git commit -m "first init "

4、接下來就是看,你的遠程倉庫建在什么地方啦,我在github 和 coding 上都有,個人認為剛開始在coding 上使用還是不錯的

$ git remote add origin git@coding.com....

假如此時遇到這個問題,fatal: Authentication failed for,那么有可能是沒有添加ssh key導致的,具體可以參考這文章

Git SSH Key 生成步驟

5、把內容推送到遠程庫上

$ git push -u origin master //由于遠程庫是空的,我們第一次推送master分支時,加上了-u參數,Git不但會把本地的master分支內容推送的遠程新的master分支,還會把本地的master分支和遠程的master分支關聯起來,在以后的推送或者拉取時就可以簡化命令

$ git push? origin master? // 后期,當然在分支的情況,另論

6、然后每次用之前

$ git pull origin master // 每次使用之前最好刷新一下

實際上現在到目前為止就可以開始用起來啦,當然分支管理這個大部分我們后期在討論。

常用的命令

$ git status? // 查看每次變化的

$ git? log? // 查看每次記錄的

$ git log --pretty=oneline // 查看記錄更清晰

$ git clone git@github.com:****.git? // 從遠程倉庫克隆,常用

7、建立分支并切換

$ git? branch? 分支名字? // 建立分支

$ git checkout 分支名字? // 切換到分支

$ git branch // 查看分支

8、合并分支

//先切換主支

$ git checkout master

$ git merge --no-ff? 分支名字

三、理解

工作區-----倉庫----遠程倉庫(git add; git commit ; git push )

1.png

2.png

四、常見問題(陸續增加中···)

1(問)、合并的時候遇到的沖突

error: There was a problem with the editor 'vi'.

Not committing merge; use 'git commit' to complete the merge.

E325: ATTENTION

Found a swap file by the name ".git/.MERGE_MSG.swp"

owned by: eladb dated: Tue Aug 20 10:52:03 2013

file name: ~eladb/MyWorkspace/Client/.git/MERGE_MSG

modified: no

user name: eladb host name: Elads-MacBook-Pro-2.local

process ID: 29959 (still running)

While opening file ".git/MERGE_MSG"

dated: Tue Aug 20 10:53:11 2013

NEWER than swap file!

(1) Another program may be editing the same file.

If this is the case, be careful not to end up with two

different instances of the same file when making changes.

Quit, or continue with caution.

(2) An edit session for this file crashed.

If this is the case, use ":recover" or "vim -r .git/MERGE_MSG"

to recover the changes (see ":help recovery").

If you did this already, delete the swap file ".git/.MERGE_MSG.swp"

to avoid this message.

Swap file ".git/.MERGE_MSG.swp" already exists!

[O]pen Read-Only, (E)dit anyway, (R)ecover, (Q)uit, (A)born:

1(答)解決方法:

找到".git/.MERGE_MSG.swp",之后刪除即可,然后重新git add .;

git commit -m "";git push master 之后,再執行 git merge branchName 就好啦

2 (問) git push 出現的警告問題

warning: push.default is unset; its implicit value has changed in

Git 2.0 from 'matching' to 'simple'. To squelch this message

and maintain the traditional behavior,use:

git config --global push.default matching

To squelch this message and adopt the new behavior now, use:

git config --global push.default simple

When push.default is set to 'matching', git will push local branches

to the remote branches that already exist with the same name.

(答)解決:

git config --global push.default matching或者git config --global push.default simple命令,以后再push就不會有警告了。

下面說一下push.default matching和push.default simple的區別:

push.default設置maching的意思是:git push 會把你本地所有分支push到名稱相對應的遠程主機上。這意味著可能你會在不經意間push一些你原本沒打算push的分支。

push.default設置成simple的意思是:git push僅僅把當前所在分支push到從當初git pull pull下來的那個對應分支上,另外,這個過程也會同時檢查各個分支的名稱是否相對應。

平常最好用 $ git push origin BRANCH #BRANCH是你遠程分支的名字

相應的 git pull

git pull origin BRANCH #BRANCH是你遠程分支的名字

3 (問) git merge 合并時遇到的沖突, Automatic merge failed; fix conflicts and then commit the result

$ git merge secondDev

Auto-merging myTest.txt

CONFLICT (content): Merge conflict in myTest.txt

Automatic merge failed; fix conflicts and then commit the result.

自動合并失敗。由于在同一行進行了修改,所以產生了沖突。

在沖突處

add 把變更錄入到索引中

commit 記錄索引的狀態

pull 取得遠端數據庫的內容

然后重新提交

$ git add myTest.txt

$ git commit -m "合并secondDev分支"

# On branch master

nothing to commit (working directory clean)

五、一張很好用git 的圖

G.png

參考鏈接(安裝中配置和使用的基本)

1、http://blog.csdn.net/matrixhero/article/details/8214156

// 基本的安裝及配置

2、http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137396287703354d8c6c01c904c7d9ff056ae23da865a000// 詳細的講解和說明,

3、http://www.ruanyifeng.com/blog/2015/08/git-use-process.html// git的使用規范

4、http://www.lxweimin.com/p/4105f1f21490//git的簡單使用

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,461評論 6 532
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,538評論 3 417
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,423評論 0 375
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,991評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,761評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,207評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,268評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,419評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,959評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,782評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,983評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,528評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,222評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,653評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,901評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,678評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,978評論 2 374

推薦閱讀更多精彩內容