自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

15分鐘學(xué)會(huì)使用Git和遠(yuǎn)程代碼庫

開發(fā) 前端
讓我們誠實(shí)一記吧:Git是復(fù)雜的,我們不要裝作它不是。但我仍然會(huì)試圖教會(huì)你用(我的)基本的Git和遠(yuǎn)程代碼庫干活的工作步驟,在15分鐘內(nèi)。

Git是個(gè)了不起但卻復(fù)雜的源代碼管理系統(tǒng)。它能支持復(fù)雜的任務(wù),卻因此經(jīng)常被認(rèn)為太過復(fù)雜而不適用于簡單的日常工作。讓我們誠實(shí)一記吧:Git是復(fù)雜的,我們不要裝作它不是。但我仍然會(huì)試圖教會(huì)你用(我的)基本的Git和遠(yuǎn)程代碼庫干活的工作步驟,在15分鐘內(nèi)。

工作步驟

我會(huì)展示以下的步驟,通常能幫我獨(dú)自在一臺(tái)或多臺(tái)機(jī)器上做項(xiàng)目。

  1. 創(chuàng)建一個(gè)遠(yuǎn)程的空代碼庫(在BitBucket上)
  2. 在本地代碼庫添加一個(gè)項(xiàng)目
  3. 在分支上開發(fā)新功能
  4. a) 保留新功能 或者 b) 丟棄它們
  5. 也許,回到某個(gè)早先的時(shí)間點(diǎn)
  6. 將本地代碼庫推送到遠(yuǎn)程代碼庫
  7. 在另一臺(tái)機(jī)器上取得遠(yuǎn)程代碼庫

安裝Git    

在大多數(shù)*nix系統(tǒng)(Linux、OS X)上,Git已經(jīng)被安裝了。你通過發(fā)送下面的命令,可以通過Git自身,把它更新到最新的的開發(fā)版本(不推薦)。

  1. git clone https://github.com/git/git 

在Windows上,你可以在這里下載Git的安裝程序。如果你真的需要其他系統(tǒng)的安裝程序,Mac OS X安裝文件在這里,Linux的操作指導(dǎo)在這里。

創(chuàng)建一個(gè)遠(yuǎn)程代碼庫

很多人喜歡用Github。我個(gè)人更喜歡BitBucket,因?yàn)樗峁┝瞬幌拗频乃接写a庫,那是我最需要的。你可以將下列指令轉(zhuǎn)換到Github上,這些過程是相同的。

那么,去到www.bitbucket.org并注冊一個(gè)賬號(hào)。一旦完成,登錄后點(diǎn)擊最上方的“create(創(chuàng)建)”按鈕。照著填寫表格,勾選私有代碼庫。你可不想讓其他人來偷窺你的Facebook的殺手級(jí)應(yīng)用的源代碼,對吧。

 你現(xiàn)在可以離開BitBucket了,我們在已經(jīng)有了所有那里需要的東西了。

設(shè)置Git

在我們能用Git工作之前,我們需要做個(gè)一次性的配置。為了Git能跟蹤到誰做了修改,我們需要設(shè)置你的用戶名。我強(qiáng)烈建議你使用與注冊 BitBucket賬號(hào)相同的用戶名和電子郵箱地址。發(fā)送這些命令,相應(yīng)地替換掉其中的“your_username”和 “your_email@domain.com”(注意引號(hào)):

  1. git config --global user.name "your_username" 
  2. git config --global user.email your_email@domain.com 

我們也會(huì)設(shè)定推送(push)的默認(rèn)值為‘simple’。要了解這是什么意思,快速閱讀我之前發(fā)布的關(guān)于推送的默認(rèn)值(非必須)。發(fā)送這條命令:

  1. git config --global push.default simple 

我們都設(shè)好了。你無需在你的機(jī)器上再重復(fù)這些配置,但如果你在另一臺(tái)機(jī)器上工作的話,不要忘記這些配置。如果你忘記做初始的配置,Git不會(huì)允許你提交任何東西,這會(huì)讓你困擾。

創(chuàng)建一個(gè)本地代碼庫

作為例子,我們會(huì)假裝我們有一個(gè)網(wǎng)站(無所謂技術(shù))存在于我們機(jī)器上的‘workspace’文件夾下的’my_site’文件夾內(nèi)。在命令行中,去到你的站點(diǎn)的根文件夾。在OS X和Linux上:

  1. cd ~/workspace/my_site/ 

在Windows上:

  1. cd c:\workspace\my_site 

Git會(huì)在my_site文件夾內(nèi)創(chuàng)建一個(gè)名為.git的隱藏文件夾,那就是你的本地代碼庫。

加載(Stage)文件

我們現(xiàn)在需要命令Git我們需要加載(stage)所有項(xiàng)目文件。發(fā)送:

  1. git add . 

最后的“.”符號(hào)的意思是“所有文件、文件夾和子文件夾”。假如我們只想要把特定文件添加到源代碼控制中去,我們可以指定它們:

  1. git add my_file, my_other_file 

提交文件

現(xiàn)在,我們想要提交已加載(staged)的文件。閱讀“添加一個(gè)時(shí)間點(diǎn),在這里你的文件處在一個(gè)可還原的狀態(tài)”。我們提交我們的文件時(shí),總是附帶著有意義的注釋,描述了它們現(xiàn)在的狀態(tài)。我一直用“initial commit”來作為第一個(gè)提交的注釋。

  1. git commit -m "initial commit" 

就這樣?,F(xiàn)在你隨時(shí)都可以回滾到這個(gè)提交狀態(tài)。如果你有需要檢查你現(xiàn)在的已加載(staged)和未加載(unstaged)文件的狀態(tài)、提交等,你可以詢問git的狀態(tài):

  1. git status 

創(chuàng)建分支

建立分支是你創(chuàng)建代碼的獨(dú)立版本的動(dòng)作,獨(dú)立于你的主干分支。默認(rèn)地,每次你提交到Git的文件都會(huì)被儲(chǔ)存到“master(主干)”分支。

現(xiàn)在我們來說說,你想要向項(xiàng)目里添加一個(gè)功能,但你想要能夠回滾到現(xiàn)在版本,以防出現(xiàn)差錯(cuò),或者你決定要放棄這個(gè)功能。這就是你創(chuàng)建分支的時(shí)候了。創(chuàng)建并同時(shí)切換到你新建的分支,發(fā)送:

  1. git checkout -b new_feature 

或者,你可以先創(chuàng)建一個(gè)分支然后手動(dòng)切換,就像這樣:

  1. git branch new_featuregit checkout new_feature 

要看你現(xiàn)在項(xiàng)目下所有的分支,發(fā)送這個(gè):

  1. git branch 

現(xiàn)在你可以在你的項(xiàng)目上無所顧忌地做任何你想做的:任何時(shí)候,你都可以回到你創(chuàng)建分支前的狀態(tài)。注意,你同時(shí)可以有多個(gè)分支,甚至可以從一個(gè)分支上再創(chuàng)建一個(gè)分支。

#p#

合并分支

當(dāng)你對你的新功能滿意了的時(shí)候,你想要把它加到主干分支上。當(dāng)你在你的新功能分支上時(shí),你首先需要加載(stage)并且提交你的文件:

  1. git add .git commit -m "adds my new feature" 

然后你移到你的主干分支:

  1. git checkout master 

像這樣合并:

  1. git merge new_feature 

此時(shí),你的主干分支和你的新功能分支會(huì)變成一樣的了。

丟棄分支

相反,如果你打算丟棄你在分支里做的修改,你首先需要加載(stage)你的文件并且在分支里提交:

  1. git add .git commit -m "feature to be discarded" 

然后,你移到主干分支:

  1. git checkout master 

現(xiàn)在,你的代碼處于你創(chuàng)建分支之前的狀態(tài)了。

刪除一個(gè)分支

如果你要把你的分支合并到主干分支,從主干(master)分支上發(fā)送:

  1. git branch -d new_feature 

假如修改已經(jīng)合并了,它只會(huì)刪除分支。假如分支沒有合并,你會(huì)得到一個(gè)錯(cuò)誤信息。刪除一個(gè)未合并的分支(通常你不想保留的修改),你需要發(fā)送一樣的命令附帶一個(gè)大寫D。意思是“強(qiáng)制刪除分支,無論如何我不想要它了。”:

  1. git branch -D new_feature 

回滾到之前的提交狀態(tài)

在某些時(shí)候,你可能想要回到之前的代碼版本。首先,你需要找到你想回到哪個(gè)版本。要看所有的完成了的提交,發(fā)送:

  1. git log 

這會(huì)輸出你的提交的歷史記錄,像這樣:

  1. commit ca82a6dff817ec66f44342007202690a93763949Author: your_username your_email@domain.comDate:   Mon Nov 4 12:52:11 2013 -0700    changes the frontpage layout 
  2. commit 085bb3bcb608e1e8451d4b2432f8ecbe6306e7e7Author: your_username your_email@domain.comDate:   Mon Nov 4 11:40:33 2013 -0700    adds my new feature 
  3. commit a11bef06a3f659402fe7563abf99ad00de2209e6Author: your_username your_email@domain.comDate:   Mon Nov 4 10:37:28 2013 -0700    initial commit 

如果你想回到“adds my new feature”這個(gè)提交,簡單地用提交的ID做簽出(checkout)(我通常只用到ID開頭的9個(gè)字符)

  1. git checkout 085bb3bcb 

你也可以簽出到一個(gè)新的分支,像這樣:

  1. git checkout -b my_previous_version 085bb3bcb 

只是別太瘋狂了!你的分支越復(fù)雜,就越難確定你真正在做什么。

推送到遠(yuǎn)程代碼庫

在第一次你想推送一個(gè)本地代碼庫到遠(yuǎn)程代碼庫時(shí),你需要把它添加到你的項(xiàng)目配置里。像這樣做:

  1. git remote add origin https://your_username@bitbucket.org/your_username/name_of_remote_repository.git 

注意這里的“origin”只是一個(gè)習(xí)慣。它是你的遠(yuǎn)程代碼庫的別名,但是你可以用其他任何你喜歡的詞。你甚至可以有多個(gè)遠(yuǎn)程代碼庫,你只需要給它們起不同的別名。

之后,你想要推送你的本地代碼庫的主干分支到你的遠(yuǎn)程代碼庫:

  1. git push origin master 

如果你使用Bitbucket,在這時(shí),你會(huì)被請求輸入你的密碼。照做,你的本地代碼庫會(huì)被推送到你的遠(yuǎn)程代碼庫上。

取得遠(yuǎn)程代碼庫的一份本地拷貝

如果你還沒有一份遠(yuǎn)程代碼庫的本地版本(例如,如果你在另一臺(tái)機(jī)器上開始工作,這臺(tái)機(jī)器上還沒有用過這個(gè)項(xiàng)目),你首先需要拷貝(clone)它。去到你的代碼庫想要拷貝到的文件夾下,并發(fā)送:

  1. git clone https://your_username@bitbucket/your_username/name_of_remote_repository.git 

另一方面,如果你已經(jīng)在本地的項(xiàng)目上工作了,只是想從遠(yuǎn)程代碼庫上取得它最新的版本,移動(dòng)到項(xiàng)目的根目錄下,并發(fā)送:

  1. git pull origin master 

別名

Git允許你為你常用的命令創(chuàng)建快捷方式(別名)。例如,如果你不想每次都輸入git commit -m “some comment”,而是輸入git c “some comment”,你可以向你的git全局配置里添加一個(gè)別名來實(shí)現(xiàn),像這樣:

  1. git config --global alias.c 'commit -m' 

這是我使用的別名列表:

  1. git config --global alias.c 'commit -m' 
  2. git config --global alias.co 'checkout' 
  3. git config --global alias.cob 'checkout -b' 
  4. git config --global alias.br 'branch' 
  5. git config --global alias.m 'merge' 
  6. git config --global alias.a 'add .' 
  7. git config --global alias.s 'status' 
  8. git config --global alias.dbr 'branch -d' 

進(jìn)一步

當(dāng)然,還有比這些更多的Git內(nèi)容。如果你想要更了解Git,我推薦官方文檔和教程,你可以在http://git-scm.com/documentation找到。

原文鏈接:http://blog.nicoschuele.com/?p=219

譯文鏈接:http://blog.jobbole.com/53573/

責(zé)任編輯:陳四芳 來源: 伯樂在線
相關(guān)推薦

2020-01-02 15:16:51

Nginx反向代理服務(wù)器

2020-05-22 10:20:27

Shiro架構(gòu)字符串

2021-07-15 06:43:11

Bash調(diào)試腳本

2022-06-17 08:05:28

Grafana監(jiān)控儀表盤系統(tǒng)

2022-03-08 08:39:22

gRPC協(xié)議云原生

2018-04-20 16:43:23

2016-12-22 21:47:04

SEDLinuxUnix

2021-07-28 08:53:53

GoGDB調(diào)試

2013-06-27 09:41:19

LuaLua語言Lua語言快速入門

2014-04-22 09:42:12

Bash腳本教程

2009-11-20 17:06:49

Oracle數(shù)據(jù)庫字符

2020-09-30 09:17:32

electron將現(xiàn)有

2015-04-21 17:35:29

代碼

2018-11-28 11:20:53

Python函數(shù)式編程編程語言

2024-03-04 15:19:52

Python編程內(nèi)建函數(shù)

2020-10-19 18:07:00

云計(jì)算技術(shù)應(yīng)用

2019-11-20 10:38:59

MySQLSQL數(shù)據(jù)庫

2018-04-24 14:52:48

LinuxBash腳本

2009-10-21 18:19:36

VB.NET實(shí)現(xiàn)拖放

2019-07-18 16:32:06

Python函數(shù)數(shù)據(jù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)