【記錄】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 '12345@qq.com'

  

三級文件配置路徑:

 .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回退到某一版本

git reset --hard commitId

git push origin 分支 --force ##強制重新提交

  

 

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

-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過來:

具體命令:

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 強制拉取遠程代碼覆蓋本地 

git fetch --all

git reset --hard origin/master

git pull

  

 

 

 

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


免責聲明!

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



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