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


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

(文檔較長,請大家耐心閱讀,很有幫助)

 

 

git比較本地倉庫和遠程倉庫的差異

更新本地的遠程分支

git fetch origin
2.本地與遠程的差集 :(顯示遠程有而本地沒有的commit信息)


git log master..origin/master
3.統計文件的改動


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



 

將遠程git倉庫里的指定分支拉取到本地(本地不存在的分支)

當我想從遠程倉庫里拉取一條本地不存在的分支時:

git checkout -b 本地分支名 origin/遠程分支名

這個將會自動創建一個新的本地分支,並與指定的遠程分支關聯起來。

例如遠程倉庫里有個分支dev2,我本地沒有該分支,我要把dev2拉到我本地:

若成功,將會在本地創建新分支dev2,並自動切到dev2上。

 

如果出現提示:

fatal: Cannot update paths and switch to branch 'dev2' at the same time.
Did you intend to checkout 'origin/dev2' which can not be resolved as commit?

表示拉取不成功。我們需要先執行

git fetch

然后再執行

git checkout -b 本地分支名 origin/遠程分支名

即可。

 

 

 

 

查看分支:git branch

創建分支:git branch <name>

切換分支:git checkout <name>或者git switch <name>

創建+切換分支:git checkout -b <name>或者git switch -c <name>

合並某分支到當前分支:git merge <name>

刪除分支:git branch -d <name>

 

 

 

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
git reset --hard commitId
 
git push origin 分支 --force ##強制重新提交

  

 

 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

  

 


免責聲明!

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



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