Git pull(拉取),push(上傳)命令整理(詳細)


 

  前言:博主最近在學習git命令,因為git是一個非常好用的分布式版本管理工具,功能比svn強大,與SVN不同點是Git去中心化,每一個分支都是一個中心,並且支持本地倉庫存儲,像如今很多大公司都用git做版本控制。話不多說,具體命令整理如下:(文檔較長,請大家耐心閱讀,很有幫助)

 

git拉取遠程代碼

?
1
git clone  https: //xxx.git

  

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

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

  

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

?
1
git init

  

查看git的配置信息

?
1
git config -l

  

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

?
1
git config user.name 'Lee'

  

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

?
1
git config user.email '12345@qq.com'

  

三級文件配置路徑:

?
1
2
3
.git/config
/.gitconfig    #當前用戶目錄
/etc/gitconfig  #git安裝目錄

 

本地提交到git索引(緩存)中

?
1
2
3
git add .          #把新增的、修改的都加到緩存
 
git add -A        #把新增、和修改的、和刪除的都加到緩存

  

本地從緩存中加到文件庫(repository)中

?
1
git commit -m '版本描述'  #提交到文件庫

 

本地一件提交到文件庫中

?
1
git commit -am '版本描述'   #一步完成提交

  

查看當前git狀態信息(查看是否有文件未提交)

?
1
git status

  

 

 

git中的三類文件

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

  

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

?
1
touch .gitignore

  

.gitignore文件忽略內容demo

?
1
2
3
4
5
6
7
8
9
10
11
# Maven #
target/
 
# IDEA #
.idea/
*.iml
 
# Eclipse #
.settings/
.classpath
.project

  

注意:新建的一個忽略文件,為什么沒有生效

答:可能是因為你的緩存區已經有忽略的文件了,所以需要先清空緩存區里的文件,重新add和commit操作

 

刪除緩存區所有文件命令

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

  

重新add到緩存區

?
1
git add .

  

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

查看git的日志信息

?
1
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日志輸出格式

?
1
git log --oneline

  

 

 

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

?
1
git log --oneline --graph

  

 

查看本地添加了哪些遠程分支地址

?
1
git remote

  

 

 

 

 查看本地添加了哪些遠程分支地址(詳細)

?
1
git remote -v

  

 

 

 

 刪除本地指定的遠程地址

?
1
git remote remove origin

  

添加遠程地址

?
1
git remote add origin https: //xxxxxxxxxxxx.git

    

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

 

 

?
1
2
3
4
5
6
7
8
9
10
11
git branch                          #列出當前開發所有分支(默認會有master)<br>
git branch king                   #創建一個king的分支(最新提交點)<br>
git branch king 提交點          # 創建一個king的分支(指定提交點)
<br>git branch -d -r <branchname>   # 刪除遠程分支,刪除后還需推送到服務器<br>git push origin:<branchname>  # 刪除后推送至服務器<br><br>
git branch -d king                #刪除king分支
 
 
git checkout king                 #切換至king分支
 
git checkout master   
git merge king      #合並分支king和主干master,合並后的提交點屬於主干master

 

本地分支重命名

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

  

查看本地和遠程的所有分支

?
1
git branch -a     # 查看本地和遠程的所有分支

  

查看遠程所有分支

?
1
git branch -r # 查看遠程所有分支

  

重命名遠程分支:

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

 

 head節點代表最新的commit  顯示head 信息

?
1
git show HEAD

  

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

?
1
git reset --hard v0. 1

  

 查詢所有提交點

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

  

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

?
1
2
git checkout master   
git rebase reking       #合並分支reking和主干master,合並后的提交點屬於主干master

 

  clone 克隆遠程文件

?
1
git clone "遠程地址"  "本地文件名稱"

  

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

?
1
git push -u origin feature-wxDemo

  

fetch與pull

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

?
1
git fetch origin master

  

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

?
1
git pull origin master

 

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

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

  

統計文件改動

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

 

git分支說明

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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 主分支差異情況

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

  

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
-d
--delete:刪除
 
-D
--delete --force的快捷鍵
 
-f
--force:強制
 
-m
--move:移動或重命名
 
-M
--move --force的快捷鍵
 
-r
--remote:遠程
 
-a
--all:所有

  

git 解決遠程沖突思路:

1:先在本地切換到主分支上(git branch master),拉取最新代碼

2:再切換到bug分支上,例如:feature-XXX

3:git merge master

4:會提示哪個文件有沖突,解決后,小烏龜找到沖突文件,點擊resolve

5:git commit -> git push

這樣沖突就解決了

 

git 在不想commit的情況下進行git pull操作:

會報如下提示:

 

 

當我們的遠程倉庫更改后,想拉取到本地,但是本地也做了更改,暫時不想提交怎么辦?

git 提供了一個很方便的命令stash ,先將本地更改放入暫存區,然后拉取,最后將暫存區的代碼merge過來:

具體命令:

?
1
2
3
4
5
6
7
8
9
10
11
git stash  #將本地修改放入暫存區
 
git pull origin develop3. 12.9 :develop3. 12.9  #拉取項目
 
git stash pop  #從暫存區取最近一次記錄merge
 
git stash list #顯示所有stash列表
 
git stash drop stash@{ 0 } #這是刪除第一個隊列
 
git stash clear  #清空stash

  

  

參考鏈接地址:https://www.cnblogs.com/canda/p/7835663.html

 

 

git 強制拉取遠程代碼覆蓋本地 

?
1
2
3
4
5
git fetch --all
 
git reset --hard origin/master
 
git pull

  

 

 

 

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

原文地址:https://www.cnblogs.com/wbl001/p/11495110.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM