源代碼管理工具-GIT

一. git 概述

1. git 簡(jiǎn)介?

  1. 什么是git?

    • git是一款開(kāi)源的分布式版本控制工具
    • 在世界上所有的分布式版本控制工具中,git是最快、最簡(jiǎn)單、最流行的
  2. git的起源?

    • 作者是Linux之父:Linus Benedict Torvalds
    • 當(dāng)初開(kāi)發(fā)git僅僅是為了輔助Linux內(nèi)核的開(kāi)發(fā)(管理源代碼)
  3. git的現(xiàn)狀?

    • 越來(lái)越多的開(kāi)源項(xiàng)目已經(jīng)轉(zhuǎn)移到git

一. git 使用

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

  1. 首先進(jìn)入需要?jiǎng)?chuàng)建本地代碼倉(cāng)庫(kù)的文件路徑。
    image.png
  2. 初始化本地倉(cāng)庫(kù)git init
    image.png
  • 創(chuàng)建成功會(huì)有相應(yīng)提示,在文件夾根目錄會(huì)生成.git文件夾,此文件夾就是代碼倉(cāng)庫(kù)
    image.png

設(shè)置Git

在我們使用Git工作之前,我們需要做個(gè)一次性的配置。為了使Git能夠記錄誰(shuí)做了修改,我們需要設(shè)置全局的用戶名及郵箱。方便其他開(kāi)發(fā)者查看

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

查看Git配置

git config -l

提交文件

提交文件的命令為commit 在使用commit前需要先將修改的文件提交到暫存區(qū)

git add .
git commit -m"提交文件"

查看狀態(tài)

git status

日志查看

git log
git reflog

文件狀態(tài)

顏色含義
  • 紅色: 代表被添加或者修改的文件沒(méi)有被添加到暫緩區(qū)
  • 綠色: 代表文件在暫緩區(qū),等待提交
版本號(hào)的含義
  • 版本號(hào)是一個(gè)由SHA1生成的40位哈希值
  • 這樣做的目的是保證版本號(hào)的唯一

版本回退

命令: 
        git reset —hard HEAD 重置到當(dāng)前版本
        git reset —hard HEAD^^ 重置到上上個(gè)版本
        git reset ——hard HEAD2 重置到往上2個(gè)版本
        git reset —hard 七位版本號(hào) 重置到指定版本::

創(chuàng)建分支

建立分支是你創(chuàng)建代碼的獨(dú)立版本的動(dòng)作,獨(dú)立于你的主干分支。默認(rèn)地,每次你提交到Git的文件都會(huì)被儲(chǔ)存到“master(主干)”分支。
現(xiàn)在我們來(lái)說(shuō)說(shuō),你想要向項(xiàng)目里添加一個(gè)功能,但你想要能夠回滾到現(xiàn)在版本,以防出現(xiàn)差錯(cuò),或者你決定要放棄這個(gè)功能。這就是你創(chuàng)建分支的時(shí)候了。創(chuàng)建并同時(shí)切換到你新建的分支,發(fā)送:

git checkout -b new_feature

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

git branch new_featuregit checkout new_feature

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

git branch

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

合并分支

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

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

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

git checkout master

像這樣合并:

git merge new_feature

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

丟棄分支

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

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

然后,你移到主干分支:

git checkout master

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

刪除一個(gè)分支

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

git branch -d new_feature

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

git branch -D new_feature

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

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

git log

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

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

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

git checkout 085bb3bcb

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

git checkout -b my_previous_version 085bb3bcb

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

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

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

注意這里的“origin”只是一個(gè)習(xí)慣。它是你的遠(yuǎn)程代碼庫(kù)的別名,但是你可以用其他任何你喜歡的詞。你甚至可以有多個(gè)遠(yuǎn)程代碼庫(kù),你只需要給它們起不同的別名。
之后,你想要推送你的本地代碼庫(kù)的主干分支到你的遠(yuǎn)程代碼庫(kù):

git push origin master

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

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

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

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

git pull origin master

別名

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

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

這是我使用的別名列表:

git config --global alias.c 'commit -m'
git config --global alias.co 'checkout'
git config --global alias.cob 'checkout -b'
git config --global alias.br 'branch'
git config --global alias.m 'merge'
git config --global alias.a 'add .'
git config --global alias.s 'status'
git config --global alias.dbr 'branch -d'

參考鏈接:http://blog.jobbole.com/53573/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容