1. 程式人生 > 程式設計 >Git pull(拉取),push(上傳)相關命令介紹

Git pull(拉取),push(上傳)相關命令介紹

前言:博主最近在學習git命令,因為git是一個非常好用的分散式版本管理工具,功能比svn強大,與SVN不同點是Git去中心化,每一個分支都是一箇中心,並且支援本地倉庫儲存,像如今很多大公司都用git做版本控制。話不多說,具體命令整理如下:

git拉取遠端程式碼

git clone https://xxx.git  

git拉取遠端指定分支下程式碼(-b 分支名稱)

git clone -b v2.8.1 https://xxx.git

初始化一個本地倉庫,在同級目錄下會出現一個隱藏的.git檔案

git init  

檢視git的配置資訊

git config -l  

git配置本地倉庫的userName(必須)

git config user.name 'Lee'  

git配置本地倉庫的郵箱(必須)

git config user.email '[email protected]'  

三級檔案配置路徑:

.git/config
/.gitconfig #當前使用者目錄
/etc/gitconfig #git安裝目錄

本地提交到git索引(快取)中

git add . #把新增的、修改的都加到快取
git add -A #把新增、和修改的、和刪除的都加到快取  

本地從快取中加到檔案庫(repository)中

git commit -m '版本描述' #提交到檔案庫

本地一件提交到檔案庫中

git commit -am

'版本描述' #一步完成提交  

檢視當前git狀態資訊(檢視是否有檔案未提交)

git status

git中的三類檔案

被追蹤的(tracked):已經加入文件庫
不被追蹤的(untracked):沒有加入文件庫
忽略的(ignored):忽略那些不需要管理的資料夾或檔案 

git新建忽略檔案 目錄下建立一個.gitignore檔案(可以有多個,影響範圍當前檔案及子檔案)

touch .gitignore 

.gitignore檔案忽略內容demo

# Maven #
target/

# IDEA #
.idea/
*.iml


# Eclipse #
.settings/
.classpath

.project
  

注意:新建的一個忽略檔案,為什麼沒有生效

答:可能是因為你的快取區已經有忽略的檔案了,所以需要先清空快取區裡的檔案,重新add和commit操作

刪除快取區所有檔案命令

git rm -r --cached . #主要這個點一定要寫 

重新add到快取區

git add .  

每一次commit都是一個提交點,唯一標識SHA1的ID,ID可使用前4至7個數字表示

檢視git的日誌資訊

git log

給提交點打標籤 git tag -a v0.2 4a80f64(提交點SHA1的ID的前7位)

git tag -a tagV1 d819565b #提交點SHA1的ID的前7位

回車之後會有輸入tag內容的介面,然後像linux一樣 點選 i 編輯 輸入資訊後 esc 然後 :wq 儲存退出

簡化git日誌輸出格式

git log --oneline

顯示主分支和自分支git日誌 (前面會多個星號)

git log --oneline --graph

檢視本地添加了哪些遠端分支地址

git remote

檢視本地添加了哪些遠端分支地址(詳細)

git remote -v

刪除本地指定的遠端地址

git remote remove origin 

新增遠端地址

git remote add origin https://xxxxxxxxxxxx.git    

分支:分支意味著你可以從開發主線(master)上分離開,在不影響主線的同事繼續工

git branch #列出當前開發所有分支(預設會有master)
git branch king #建立一個king的分支(最新提交點)
git branch king 提交點 # 建立一個king的分支(指定提交點)

git branch -d -r <branchname> # 刪除遠端分支,刪除後還需推送到伺服器
git push origin:<branchname> # 刪除後推送至伺服器

git branch -d king #刪除king分支


git checkout king #切換至king分支

git checkout master
git merge king
#合併分支king和主幹master,合併後的提交點屬於主幹master

本地分支重新命名

git branch -m <oldbranch> <newbranch> #重新命名本地分支 

檢視本地和遠端的所有分支

git branch -a # 檢視本地和遠端的所有分支 

檢視遠端所有分支

git branch -r # 檢視遠端所有分支  

重新命名遠端分支:

1、刪除遠端待修改分支
2、push本地新分支到遠端伺服器

head節點代表最新的commit 顯示head 資訊

git show HEAD

回退:git reset 選項 提交點(選項:--hard表示全恢復 提交點:可用ID或標籤)

git reset --hard v0.1

查詢所有提交點

git reflog #回退後需要反悔的話,需要通過此命令查詢到所有操作的提交點 

合併分支的起始點(不推薦)

git checkout master
git rebase reking
#合併分支reking和主幹master,合併後的提交點屬於主幹master

clone 克隆遠端檔案

git clone "遠端地址" "本地檔名稱" 

push 推送本地修改分支至遠端git倉庫

git push -u origin feature-wxDemo 

fetch與pull

fetch是將遠端主機的最新內容拉到本地,不進行合併

git fetch origin master 

pull 則是將遠端主機的master分支最新內容拉下來後與當前本地分支直接合並 fetch+merge

git pull origin master

如果遠端分支是與當前分支合併,則冒號後面的部分可以省略。如下:

git pull origin master:feature-wxDemo #git pull <遠端主機名> <遠端分支名>:<本地分支名>  

統計檔案改動

git diff --stat master origin/master #git diff <local branch> <remote>/<remote branch>  

git分支說明

Production分支(主線分支用於發版,不會直接改)
Master分支,這個分支只能從其他分支合併,不能在這個分支直接修改

Develop分支(開發分支)
這個分支是我們是我們的主開發分支,包含所有要釋出到下一個Release的程式碼,這個主要合併與其他分支,比如Feature分支

Feature分支(新功能分支)
這個分支主要是用來開發一個新的功能,一旦開發完成,我們合併回Develop分支進入下一個Release

Release分支(偏向測試)
當你需要一個釋出一個新Release的時候,我們基於Develop分支建立一個Release分支,完成Release後,我們合併到Master和Develop分支

Hotfix分支(緊急bug釋出)
當我們在Production發現新的Bug時候,我們需要建立一個Hotfix,完成Hotfix後,我們合併回Master和Develop分支,所以Hotfix的改動會進入下一個Release  

比較本地分支與git 主分支差異情況

git diff --stat feature-wxAgentIm origin/master # git diff <local branch> <remote>/<remote branch>  

git中一些選項解釋(重要):

-d
--delete:刪除

-D
--delete --force的快捷鍵

-f
--force:強制

-m
--move:移動或重新命名

-M
--move --force的快捷鍵

-r
--remote:遠端

-a
--all:所有

以上整理希望能幫助到你。

轉載於:https://www.cnblogs.com/wbl001/p/11495110.html

到此這篇關於Git pull(拉取),push(上傳)相關命令介紹的文章就介紹到這了,更多相關Git pull(拉取),push(上傳)命令內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!