Git的使用

Paste_Image.png

Git發(fā)展

  • Linus -> Linux
  • 分布式: 每一臺(tái)電腦, 都可以下載完整的代碼和歷史消息, 都是獨(dú)立的倉(cāng)庫(kù)
  • 離線方式: 可以離線, 在沒(méi)有網(wǎng)絡(luò)的情況下, 繼續(xù)使用, 可以訪問(wèn)所有的歷史
  • 倉(cāng)庫(kù): 存儲(chǔ)代碼修改歷史空間
  • 本地倉(cāng)庫(kù): 本地電腦中保存所有修改歷史的空間
  • 遠(yuǎn)程倉(cāng)庫(kù): 保存修改歷史, 并且多臺(tái)電腦可以同步修改
  • 本地, 遠(yuǎn)程: 遠(yuǎn)程倉(cāng)庫(kù), 只保留歷史修改, 不保存實(shí)際的目錄和文件; 本地倉(cāng)庫(kù)包含倉(cāng)庫(kù)數(shù)據(jù), 以及工作目錄
  • 工作目錄: 本地倉(cāng)庫(kù)外會(huì)包含當(dāng)前最新的一套可以修改操作的文件內(nèi)容

創(chuàng)建Git本地倉(cāng)庫(kù)

  1. git init

    1). 如果執(zhí)行g(shù)it init沒(méi)有參數(shù), 代表把當(dāng)前目錄作為GIt本地倉(cāng)庫(kù)來(lái)初始化

    1. 如果執(zhí)行 git init --bare 代表創(chuàng)建遠(yuǎn)程服務(wù)器倉(cāng)庫(kù)
    2. 執(zhí)行之后, 在指定的目錄中創(chuàng)建.git文件夾;可以認(rèn)為.git就是倉(cāng)庫(kù), 存儲(chǔ)修改歷史的記錄;

獲取工作目錄的狀態(tài)

  1. git status 獲取當(dāng)前工作目錄的狀態(tài): 顯示出當(dāng)前工作目錄中, 哪些文件是新添加, 哪些是刪除, 以及哪些是未添加的

添加修改, 變化

  1. 任何新的文件, 放到工作目錄中, 默認(rèn)Git不會(huì)管理它, 只有g(shù)it add之后才能夠進(jìn)行管理; 相當(dāng)于把修改添加到git倉(cāng)庫(kù)中的一個(gè)緩沖區(qū)里;

  2. 只有在緩沖區(qū)的內(nèi)容才可以提交給倉(cāng)庫(kù)管理;

  3. 指令格式:
    1). git add 文件全名 添加特定的文件;
    2). git add 目錄名 把指定目錄的變化添加;
    3). git add . 提交當(dāng)前文件夾中的所有文件;

提交緩沖區(qū)修改 到 倉(cāng)庫(kù)

  1. git commit

  2. 提交: 把緩沖區(qū)的內(nèi)容提交到倉(cāng)庫(kù)內(nèi)部的數(shù)據(jù)庫(kù), 修改的歷史;

  3. 如果是git 第一次安裝執(zhí)行, git 需要配置的當(dāng)前用戶的名稱和郵箱 (Please tell me who you are ?)

    1). 配置名稱: git config --global user.name "XXX"
    2). 配置郵箱: git config --global user.email "XXX@XX.XXX"

Vim的基本命令

  1. a -> 進(jìn)入INSERT編輯模式
  2. esc -> 退出當(dāng)前模式
  3. : -> 寫指令
  4. w -> 保存寫文件
  5. wq -> 保存退出
  6. !q -> 強(qiáng)制退出

快速提交

  1. git commit -am "message"

    1). git commit -a : 提交所有的改動(dòng) (包括刪除, 修改, 添加的文件)
    2). git commit -m : 代表后面跟隨 提交的日志
    3). -am -> -a -m
    4). 支持單行輸入日志

修改并且提交

  1. 修改指定的文件;
  2. git status 查看當(dāng)前工作目錄中文件的修改狀態(tài)
  3. git add 被修改的文件
  4. git commit 提交修改

刪除文件并且提交

  1. rm 文件 (不用太關(guān)注)
  2. git status 查看當(dāng)前工作目錄中文件的修改狀態(tài)
  3. git rm 文件 相當(dāng)于把刪除文件的操作, 保存到緩沖區(qū); 只有這樣, 在提交的時(shí)候, 才會(huì)把刪除的操作提交; 刪除的文件必須是之前提交過(guò)的

遠(yuǎn)程倉(cāng)庫(kù)

常見(jiàn)的遠(yuǎn)程倉(cāng)庫(kù)服務(wù)器

  1. github.com 公開(kāi)倉(cāng)庫(kù)免費(fèi), 私有倉(cāng)庫(kù)收費(fèi)
  2. bitbucket.org 無(wú)限私有倉(cāng)庫(kù), 國(guó)外的JIRA
  3. 開(kāi)源中國(guó) git.oschina.net 1000個(gè)倉(cāng)庫(kù)

如何創(chuàng)建遠(yuǎn)程倉(cāng)庫(kù)

  1. 網(wǎng)站管理: 指定倉(cāng)庫(kù)名稱, 獲取git網(wǎng)址
  2. 創(chuàng)建時(shí), 注意: 不要選擇README, 忽略和License
  3. 因?yàn)橄葎?chuàng)建本地倉(cāng)庫(kù)了, 提交到遠(yuǎn)程的時(shí)候, 第一次提交遠(yuǎn)程服務(wù)器必須是空的, 不能有任何文件

關(guān)于遠(yuǎn)程倉(cāng)庫(kù)的網(wǎng)址

  1. HTTPS網(wǎng)址: 需要每次提交, 查看日志都需要輸入用戶名和密碼 (盡量不要使用)
  2. SSH + git 網(wǎng)址: git@xxx.xxx.xxx:username/repp.git, 必須設(shè)置公鑰到服務(wù)器才可以用, 不需要輸入用戶名和密碼(強(qiáng)烈推薦)
  3. SSH公鑰生成: ssh-keygen -t rsa -C "xxxxx@xxxxx.com"

本地倉(cāng)庫(kù)與遠(yuǎn)程服務(wù)器的鏈接

  1. git remote add <別名> <網(wǎng)址>
  2. 作用, 添加服務(wù)器配置信息;
  3. 當(dāng)服務(wù)器與本地倉(cāng)庫(kù)配置好, 就可以提交了!
  4. 新工程提交到服務(wù)器: git push -u origin master (-u 是讓本地和遠(yuǎn)程服務(wù)器連接, 首次需要)
  5. 查看遠(yuǎn)程倉(cāng)庫(kù): git remote -v

代碼提交流程

  1. 本地提交 git commit;
  2. 測(cè)試完成;
  3. 從服務(wù)器同步代碼;
  4. 合并代碼, 再次測(cè)試代碼
  5. push代碼: 通過(guò)這種方式提交到服務(wù)器;
  6. 對(duì)于第三方或者是開(kāi)源的工程, 需要第5步申請(qǐng)PullRequest

Git的代碼下載

Clone 從已有的倉(cāng)庫(kù)中同步代碼

  1. git clone <網(wǎng)址> [目標(biāo)目錄](méi)
  2. 只能下載, 如果希望提交, 那么需要在網(wǎng)站設(shè)置權(quán)限

Android Studio中使用Git

基本配置

  1. Settings -> Git -> Path to Git executable: 找到安裝的git的目錄 例: C:\Git\cmd\git.exe
  2. VCS -> Enable Version Control .. : 選擇Git

創(chuàng)建工程的注意事項(xiàng)

  1. 創(chuàng)建工程, git init
  2. 設(shè)置忽略 : .gitignore文件, 可以設(shè)置忽略的內(nèi)容
  3. 忽略好才可以添加和提交
  4. Android Studio的.gitignore模板位置: C:\Program Files\Android\Android Studio\plugins\android\lib\templates\gradle-projects\NewAndroidProject\root

附: .gitignore文件

# IntelliJ IDEA
.idea/
*.iml
*.ipr
*.iws
out/

# Gradle build folder
/build
.gradle/

# Android files
local.properties
bin/
gen/

# JNI compile files
*.o
*.o.d

# Android 2.2 C/C++ complile
.externalNativeBuild/

# OS autogen folder information
.DS_Store
Thumbs.db

# Temp files
*.bak
*.tmp
*.temp
*.swp
*.*~
~*.*
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末关翎,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子茂附,更是在濱河造成了極大的恐慌,老刑警劉巖理澎,帶你破解...
    沈念sama閱讀 216,324評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡药薯,警方通過(guò)查閱死者的電腦和手機(jī)您朽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門狂丝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人哗总,你說(shuō)我怎么就攤上這事几颜。” “怎么了讯屈?”我有些...
    開(kāi)封第一講書人閱讀 162,328評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵蛋哭,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我涮母,道長(zhǎng)谆趾,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,147評(píng)論 1 292
  • 正文 為了忘掉前任叛本,我火速辦了婚禮棺妓,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘炮赦。我一直安慰自己怜跑,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,160評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布吠勘。 她就那樣靜靜地躺著性芬,像睡著了一般。 火紅的嫁衣襯著肌膚如雪剧防。 梳的紋絲不亂的頭發(fā)上植锉,一...
    開(kāi)封第一講書人閱讀 51,115評(píng)論 1 296
  • 那天,我揣著相機(jī)與錄音峭拘,去河邊找鬼俊庇。 笑死狮暑,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的辉饱。 我是一名探鬼主播搬男,決...
    沈念sama閱讀 40,025評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼彭沼!你這毒婦竟也來(lái)了缔逛?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 38,867評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤姓惑,失蹤者是張志新(化名)和其女友劉穎褐奴,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體于毙,經(jīng)...
    沈念sama閱讀 45,307評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡敦冬,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,528評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了唯沮。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片匪补。...
    茶點(diǎn)故事閱讀 39,688評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖烂翰,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蚤氏,我是刑警寧澤甘耿,帶...
    沈念sama閱讀 35,409評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站竿滨,受9級(jí)特大地震影響佳恬,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜于游,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,001評(píng)論 3 325
  • 文/蒙蒙 一毁葱、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧贰剥,春花似錦倾剿、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,657評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至担忧,卻和暖如春芹缔,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背瓶盛。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,811評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工最欠, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留示罗,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,685評(píng)論 2 368
  • 正文 我出身青樓芝硬,卻偏偏與公主長(zhǎng)得像蚜点,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子吵取,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,573評(píng)論 2 353

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

  • Git和Github學(xué)習(xí) 1.創(chuàng)建版本庫(kù) 安裝git禽额,至于這個(gè)話題就不細(xì)說(shuō)了,按照你電腦的操作系統(tǒng)下載一個(gè)合適的g...
    郭子web閱讀 370評(píng)論 0 0
  • 一皮官、git簡(jiǎn)介 git是目前世界上被最廣泛使用的現(xiàn)代軟件版本管理系統(tǒng)脯倒。git本身亦是一個(gè)成熟并處于活躍開(kāi)發(fā)狀態(tài)的開(kāi)...
    s_在路上閱讀 3,036評(píng)論 0 10
  • Git的使用 首先登錄https://git.oschina.net,如沒(méi)有賬號(hào)進(jìn)行注冊(cè). Git簡(jiǎn)單介紹 Git...
    Sunney閱讀 656評(píng)論 0 2
  • 本文主要講解以下內(nèi)容: 一、安裝 Git 捺氢、創(chuàng)建版本庫(kù) 二藻丢、時(shí)光機(jī)穿梭 三、遠(yuǎn)程倉(cāng)庫(kù) 四摄乒、分支管理 五悠反、標(biāo)簽管理 ...
    書寫不簡(jiǎn)單閱讀 358評(píng)論 0 1
  • 一、Git是什么呢馍佑? Git是目前世界上最先進(jìn)的分布式版本控制系統(tǒng)斋否。那什么是版本控制系統(tǒng)?簡(jiǎn)單的點(diǎn)就是控制每次修改...
    奔跑的時(shí)間閱讀 613評(píng)論 0 2