Git代碼管理

Git代碼管理

一、介紹

1.1 Git概述

Git是相似於SVN、CVS等代碼管理軟件,使用分佈式技術實現。Github是互聯網代碼倉庫,每一個人均可以在上面建立本身的倉庫,使用git完成同github倉庫的代碼同步等管理工做。html

IntelliJ idea->Git: 使用
Git->GitHub: 同步資源

1.2 Git邏輯架構

git架構上分爲遠程倉庫、本地倉庫和工做空間。遠程倉庫就是位於GitHub上的倉庫,本地倉庫是爲用戶本機的倉庫目錄,工做空間是用戶開發所處的目錄。三者關係與操做以下圖所示:git

遠程倉庫->本地倉庫: 下載遠程倉庫到本地倉庫(git clone)
本地倉庫->工做空間: 檢出本地倉庫項目到工做空間(git checkout)
工做空間-->本地倉庫: 提交變動到本地倉庫(git commit)
本地倉庫-->遠程倉庫: 推送本地倉庫到遠程倉庫(git push)

1.3 Git分支和標記

branch是分支,是一個獨立發展的路線,成熟後會合併到master主分支上。tag是分支推動過程當中的里程碑,是一個記號。github

1.4 Git幫助

#查看全部命令
cmd>git help -a
#
cmd>git help -g

二、Github

使用git前須要在github上註冊帳號,並建立字節的倉庫目錄。流程以下:shell

  1. 登陸github網站windows

    http://github.com
  2. 註冊用戶bash

    1527152006500

  3. 激活帳號服務器

    登陸郵箱,激活帳號便可。架構

    1527152217457

  4. 建立倉庫ssh

1527152364036

  1. 查看github上倉庫列表
    1527152430681分佈式

  2. github上的倉庫

    在setting選項卡中進行刪除。以下圖所示:
    1527486633057

    點擊刪除按鈕後,彈出警告窗口:
    1527486671233

    輸入確認刪除的倉庫名稱後,最後纔可刪除!

    1527487033926

    三、Git安裝、配置與鏈接

Git使用ssh鏈接github,下載git後不須要再單獨下載ssh軟件,git內部集成ssh軟件包。

3.1 下載軟件包Git-2.16.2-64-bit.exe

1527163459242

3.2 安裝軟件到指定目錄

1527161280476

3.3 進入git-bash命令程序

執行如下命令:

cmd>git-bash.exe

進入命令行窗口,界面以下:

1527161433949

3.4 生成公私密鑰對

cmd>ssh-keygen -t rsa -C "770305805@qq.com"

注意:-C後使用的是在github中註冊時所用的email地址。

查看在home目錄下生成公私祕鑰文件

windows的主目錄位於C:\Users\${當前用戶}\.ssh下。

1527161768788

3.5 複製公鑰文件內容到GitHub上

打開GitHub的公鑰管理頁面,如圖所示:

1527162066418

定位到SSH and GPG keys條目,以下圖所示:

1527162182667

點擊new SSH Key按鈕,以下圖所示:

1527162335367

在文本框中粘貼生成公鑰文件內容,輸入title後,點擊add SSH Key便可。以下圖:

1527162513126

3.6 在git-bash命令下測試是否可以ssh到github服務器

# 運行git-hbash命令行程序
cmd>git-bash.exe

# ssh到遠程github主機
$>ssh git@github.com

出現以下圖信息,表示鏈接成功!

1527163977118

3.7 檢查home目錄下是否有.gitconfig文件

檢查home目錄下是否存在.gitconfig文件,沒有的話,可能致使idea項目共享到github上失敗,說init過程失敗,郵箱地址不對。

使用命令添加:

# user.name是github上的住處帳號名稱
# user.email是github註冊時使用的郵箱地址
$>git config --global user.name "oldboy-xupccc" user.email "770305805@qq.com"

該文件內容以下:

[user]
    email = 770305805@qq.com
    name = oldboy-xupccc

文件截圖以下:

四、Git經常使用命令

4.1 分支

分支表示不一樣的開發路線,其內容會不斷改變。好比產品分支、開發分支、測試分支等等。一個倉庫中能夠有多個分支,默認建立一個master分支,也稱爲主分支。若是須要,能夠根據須要建立新的分支,在新分支上進行開發,成熟後再合併到master主分支上去。

4.1.1 git branch

查看分支是本地倉庫中的分支。

$>git branch
4.1.2 建立分支

建立分支也是建立本地倉庫中的分支。

$>git branch b1
4.1.3 切換當前分支
$>git checkout b1
4.1.4 提交到當前分支
$>git commit
4.1.5 查看當前分支
$>git show

如圖所示:

xpc_git_017

4.1.6 推送到遠程倉庫的分支中
# 遠程倉庫不存在該分支,須要使用--set-upstream指定 master是分支名稱
$>git push --set-upstream https://github.com/oldboy-xupccc/big12.git master
4.1.7 顯式分支列表
# 能夠不加 --list參數
$>git branch 
# 
$>git branch --list

如圖所示:*表示當前使用的分支

xpc_git_017

4.1.8 移動分支
$>git branch -m b1 b11
4.1.9 刪除分支
$>git branch -rm b1

4.2 本地倉庫命令

倉庫命令都是針對整個倉庫進行的操做,所以命令後面不加文件等參數。

4.2.1 git init

該命令時在本地建立倉庫目錄後,進入目錄下,將該目錄初始化層倉庫目錄的過程。該命令會建立.git目錄。

#建立目錄
$>mkdir repo1

#進入目錄下
$>cd repo1

#進行初始化處理
$>git init
4.2.2 git clone

克隆倉庫是在首次使用遠程倉庫時,即本地沒有倉庫目錄,從遠程服務器下載整個倉庫到本地文件系統中的初始化本地倉庫過程。所以須要指定遠程倉庫的url地址,該地址能夠在github的倉庫主頁上找到。克隆完成後,git默認將遠程倉庫的名稱設置爲origin。url構成由域名構成以下:

# 克隆倉庫
https://github.com/oldboy-xupccc/big12.git
# 克隆倉庫,指定本地名
https://github.com/oldboy-xupccc/big12.git localbig12
# 克隆倉庫指定的分支,指定本地名
https://github.com/oldboy-xupccc/big12.git localbig12 -b b1
4.2.3 git add

該命令是將文件添加到跟蹤區域,以備可以進行版本管理。

$>git add *.txt 
$>git add README.md
4.2.4 git reset

重置操做,至關於撤銷以前的操做。好比add一個文件reset後,至關於文件仍沒有被跟蹤。

$>git reset
4.2.5 git status

查看狀態

$>git status
4.2.6 忽略某些文件

git使用.gitignore文件指定哪些文件忽略。

# 以o或a結尾的文件忽律
*.[oa]
# 忽略以~結尾
*.~

4.2.7 gif diff

git status只能查看文件的狀態,可是具體哪些作了修改,可使用diff來看:

# diff後面指定本地分支和遠程分支的名稱
$>git diff master origin/master
4.2.8 git pull

pull命令是下載遠程倉庫內容到本地倉庫,覆蓋本地倉庫的內容。

$>git pull
4.2.9 git push

push命令是將本地倉庫上傳到遠程倉庫,覆蓋遠程倉庫的內容。

$>git push
4.2.10 git rm

刪除跟蹤區文件。

$>git rm 1.txt
$>git commit -m "deleted 1.txt"

4.3 遠程命令

git remote是遠程倉庫命令組,管理跟蹤的分做所在遠程倉庫的集合。管理遠程倉庫的工做,包括添加遠程庫,移除廢棄的遠程庫,管理各式遠程庫分支,定義是否跟蹤這些分支,等等。

4.3.1 git remote show

要查看當前配置有哪些遠程倉庫,能夠用git remote命令,它會列出每一個遠程庫的簡短名字。在克隆完某個項目後,至少能夠看到一個名爲 origin 的遠程庫,Git 默認使用這個名字來標識你所克隆的原始倉庫

#查看當前遠程倉庫的簡短描述
$>git remote            #輸出orginal
$>git remote show       #
$>git remote show origin# 查看origin詳細信息
#查看當前遠程倉庫的詳細描述
$>git remote -v         #輸出origin  https://github.com/oldboy-xupccc/big12.git (fetch)
4.3.2 git remote add

要添加一個新的遠程倉庫,能夠指定一個簡單的名字,以便未來引用。

$>git remote add oro https://github.com/oldboy-xupccc/big12.git

查看結果:

$>git remote -v

輸出內容以下:

origin  https://github.com/oldboy-xupccc/big12.git (fetch)
origin  https://github.com/oldboy-xupccc/big12.git (push)
oro     https://github.com/oldboy-xupccc/big12.git (fetch)
oro     https://github.com/oldboy-xupccc/big12.git (push)
4.3.3 git fetch

fetch是抓取遠程倉庫有,本地倉庫沒有的文件。

#使用短名進行抓取
$>git fetch oro

#使用具體的遠程地址進行抓取
$>git fetch https://github.com/oldboy-xupccc/big12.git
4.3.4 git push
$>git push orignal master
4.3.5 git remote show
$>git remote show origin

輸出以下內容:

* remote origin
  Fetch URL: https://github.com/oldboy-xupccc/big12.git
  Push  URL: https://github.com/oldboy-xupccc/big12.git
  HEAD branch: (unknown)
  Remote branch:
    refs/remotes/origin/master stale (use 'git remote prune' to remove)
  Local branch configured for 'git pull':
    master merges with remote master
4.3.6 git remote rename|rm
#重命名遠程倉庫
$>git remote rename oro oro2
#刪除遠程倉庫
$>git remote rm oro

4.4 標記

標記與分支類似,但一般用於軟件的版本發佈,表明着軟件的發展歷史階段,每一個標記都是一個里程碑。標記一般不會修改。

4.4.1 查看標記
$>git tag 
$>git tag --list
4.4.2 建立標記
$>git tag v1.0.0
4.4.3 推送標記到遠程倉庫
$>git push origin --tags

五、總結

git做爲一種代碼管理工具,因其具備分佈式特色,能夠隨時隨地進行代碼提交和管理,所以受到愈來愈多企業的青睞。而且在各大開發環境中也都對其進行了集成。

相關文章
相關標籤/搜索