1. 程式人生 > >Git協作流程及常用命令

Git協作流程及常用命令

一、Git協作的一般流程

1、建立原生代碼倉庫或克隆遠端倉庫

/****建立原生代碼倉庫****/
//在需要放置程式碼倉庫的目錄下執行該行命令即初始化一個空的倉庫
git init
/****獲取遠端程式碼倉庫****/
git clone [url]
//可為克隆的倉庫指定新的名字
git clone [url] [newName]

完成倉庫的建立之後,就可將檔案新增到倉庫進行管理。

//該命令為需要被管理的檔案新增跟蹤
git add *
//提交程式碼到倉庫
git commit -m "initial version"

注意:
(1) 為了防止出現各種問題,倉庫目錄路徑中儘量不要包含中文以及特殊字元。

2、建立你的工作分支
一般來說,每一個專案都有一個主分支(預設為master分支),其一般包含了所有已經正式完成的工作。
而每個人的工作最好在各自的分支上進行,直到完成功能才將其合併到主分支。因為不完整的程式碼可能導致別人無法工作。
同時,噹噹前工作未完成卻必須去解決其他的更為緊急的任務時,也需要新建另外的分支去處理。

//建立分支以及切換分支
git branch [myBranchName]
git checkout [myBranchName]
//下面該行命令等價於上面兩行
git checkout -b [myBranchName]

3、進行你的工作

經過上面的兩步,接下來就可以進行你自己的工作了,但在過程中以下命令會非常有幫助。
(1)檢視修改和操作結果

//可顯示已修改、已暫存以及未被跟蹤的檔案情況
git status 
//檢視提交歷史,顯示每一個commit的歷史版本資訊,可獲得版本資訊用於版本回滾
git log
//顯示提交差異,還可以配置其他引數
git log -P
//可檢視所有的操作記錄,在刪除分支後還可以恢復
git reflog

(2)比較檔案的不同
在休假回來或是因為臨時轉到其他任務回來時忘記之前修改了什麼地方,就需要檢視檔案版本間的不同。
由於 git 具有工作區、暫存區(Index)以及版本庫(HEAD)三個部分,他們之間的比較如下:

//不帶引數比較的是工作區和暫存區
git diff [fileName]
//比較暫存區和版本庫
git diff --staged [fileName] git diff --cached [fileName] //比較工作區和版本庫 git diff HEAD [fileName]

(3)撤銷修改

//從暫存中撤回,unstage
git reset HEAD <fileName>
//從倉庫中取出檔案覆蓋本地修改,會丟失修改
git checkout <fileName>

(4)檔案刪除
如果想要刪除檔案,你可以在本地直接刪除或使用 rm 命令刪除。
但這樣並沒有在倉庫中進行刪除,那麼你可以進行如下操作:

//若是誤刪除,可重新恢復
git checkout [fileName]
//若是想在倉庫中也刪除,可執行如下命令
git rm [fileName]
git commit -m 'delete file'

(5)獲取更新
如果在你拉取程式碼之後有人提交了更新,並且你依賴於那些更新,所以你需要獲取其更新,並與你原生代碼合併 。有兩種方法實現:

git fetch [origin] 
//預設是獲取所有分支的更新,也可指定具體分支的更新
git fetch [origin] [branch]
//獲取更新之後,需要切換需要將其合併到當前分支
git merge [branch]

另外,也可以使用直接使用git pull

//git pull 等於 fecth 加上 merge
git pull

另外,預設的合併方式是fast-forward,其不會保留分支合併資訊,可禁用該模式,保留合併資訊

git merge --no-ff -m 'merge branch' [branch]

4、提交到本地分支
在完成相應的修改之後就可以提交程式碼到倉庫了,

git add [fileName]
git add *
git commit -m 'add file'

如果你不想把某些檔案進行管理,那麼可以在倉庫目錄下新建名稱為 .gitignore 的檔案,並將不想被管理的檔案加入其中,支援使用萬用字元。例如

# Untracked files:
/bin/
/build/
/out/
*.log
*.class

# Package Files #
*.jar
*.war

# Project Files #
.settings
.project
.classpath

.gitignore 檔案可以像其他文字檔案一樣被管理,同時需要注意的是,如果.gitignore未被跟蹤提交,那麼他只對沒有被跟蹤提交的檔案有效,對已經被跟蹤提交的檔案無效。

注意:

(1)每一次修改,都需要呼叫 git add 將檔案加入到暫存區,因為 git commit 提交的是暫存區的內容。
(2)commit 的 -m 引數需要寫上,不寫上或不完整將開啟編輯器讓你繼續編輯。

5、推送程式碼到遠端以及分支合併
在把本地倉庫的提交推動到遠端之前,你應該先從遠端獲取最新的版本,並與你本地的程式碼進行合併,如果存在衝突需要解決衝突,然後才能進行提交。因為在你上次拉取程式碼之後,可能有人更新了程式碼。
之後可以使用push命令提交程式碼

git pull
//對衝突等問題其進行處理
git status
//確保沒有是自己想要的樣子就可以提交了

如果是從本地新建的倉庫的,那麼需要將其關聯到遠端倉庫

git remote add origin [email protected]:path/repo-name.git

如果是從遠端倉庫進行clone,那麼本地的倉庫已經和遠端的倉庫自動關聯。
關聯之後就可以使用以下命令進行推送程式碼了。

//遠端分支一般為origin
git push [remote branch] [local branch]
git push origin mybranch
//如果是第一次提交,即在遠端並沒有你當前的分支,那麼應加上一個引數
git push -u [remote branch] [local branch]

二、其他重要命令

(1)stash

//該命令可多次使用,其將工作區的內容暫時儲存,但不包括需要未被跟蹤的檔案
git stash 
//恢復stash,但同時會刪除satsh,無引數預設恢復最新的
git stash pop [stashID]
//會列出stash ID
git stash list
//恢復stash,但需要手動刪除
git stash apply [stashID]
//刪除stash
git stash drop [stashID]

(2)tag
類似分支指標,但無法移動,一般用於指定版本號等

//預設在最新的commit上
git tag <tagname>
git tag <tagname> <commitID>
//列出所有tag
git tag
//
git show <tagname>
//
git tag -a v1.0 -m 'version 1'
//本地刪除tag
git tag -d <tagname>  
//遠端刪除tag   
git push origin :refs/tags/<tagname>
//推送tag到遠端
git push origin <tagname>
git push origin --tags

相關推薦

Git協作流程常用命令

一、Git協作的一般流程 1、建立原生代碼倉庫或克隆遠端倉庫 /****建立原生代碼倉庫****/ //在需要放置程式碼倉庫的目錄下執行該行命令即初始化一個空的倉庫 git init /****獲取遠端程式碼倉庫****/ git clone [url] /

git開發流程以及常用命令

mit comm fetch 開發流程 check 推送 代碼 命令 創建 git正確開發流程1. git clone url 從某個url克隆代碼到本地2. git checkout -b test 創建一個新的分支來進

必須要會的Git基本使用常用命令操作

之前一直用的svn,後來換了之後才發現git的強大功能,是svn不能比的。缺點就是可能上手比較難一點,剛開始自己研究了兩天才摸索出來一些基本使用方法。 最近做專案需要建庫等等,都用到了git,隨著越來越多的使用,也越來有越多的認識。 一開始都是別人建好遠端庫,克隆下來就行了。 下面

Git 的使用常用命令的使用

Git是什麼? Git是目前世界上最先進的分散式版本控制系統 (沒有之一);相比於CVS及SVN都是集中式的版本控制系統,Git是分散式版本控制系統; 建立版本庫 1、在指定目錄下建立一個新的原生代碼倉庫 git init

git 快速入門常用命令

身為技術人員,都知道Git是幹嘛的。從服務端角度它是程式碼倉庫,可以多人協作、版本控制、高效處理大型或小型專案所有內容;從客戶端講,它能夠方便管理本地分支、且與服務端程式碼的同步,從拉取、合併、提交等等管理分支都靠它! Git輕量、易於學習,如果不用搭建和維護程式碼倉庫的話(運維職責),只要掌握幾個git常

Git使用:安裝,使用常用命令整理

reset short 配置文件 res 命名 nbsp class 名詞 如果 對於程序猿而言,git是最常接觸的工具之一,因此需要熟練快速掌握其技巧。 git安裝: windwos: 【原創】Windows平臺下Git的安裝與配置 Ubuntu:git與github在

git提交項目常用命令git分支的用法

-m git分支 平臺 註釋 pull tro req 刪除遠程分支 常用 1.第一步首先從git托管平臺clone項目,我這裏就使用idea為例: 填寫git的url與存放本地目錄名及項目名 2.如果你對項目進行了一些修改,就可以執行git命令,

Git教程常用命令

1. Git 簡介 2. 基本命令 2.1. git config: 環境設定命令 2.2. git init

Git簡介常用命令

Git:分散式版本控制系統,沒有“中央伺服器”,每個人的電腦上都是一個完整的版本庫。 SVN:集中式版本控制系統,版本庫是集中存放在中央伺服器的,大家都是圍繞中央伺服器展開工作的。 git安裝 Linux上安裝Git:sudo apt-get in

git的工作流程常用命令總結

1. clone倉庫: git clone git的地址 (例如:[email protected]:yjy007/myproject.git) 2. 檢出遠端的develop分支 git checkout -b develop o

開發環境之git:團隊協作git工作流與常用命令

此篇文章只是一篇傻瓜式的,記錄工作中比較規範且常見的一個git工作流需要用到的命令,讓你可以快速的開始工作。而不是一些長篇大論的理論知識,如果你有用過sourcetree或者其它圖形化工具,結合你正在使用的工具,敲這些命令,看圖形化工具中的變化,對比思考這些命令可能會更容易吸收。 1.基本配置 剛入職公司

Git入門】安裝常用命令操作

Git VS SVN ① 版本庫本地化,支援離線提交,相對獨立不影響協同開發。每個開發者都擁有自己的版本控制庫,在自己的版本庫上可以任意的執行提交程式碼、建立分支等行為。 ② 更少的“倉庫汙染”。git對於每個工程只會產生一個.git目錄,這個工程所有的版本控制資訊都在這個目錄中,不

Git版本管理之旅(二)—— Git基本操作流程相關命令

本章繼續上章的型別,介紹基於空專案的版本庫操作,本教程基於Ubuntu 建立版本庫 新增檔案 修改檔案 刪除檔案 版本回退 基本概念 管理以及撤銷修改 新增到遠端倉庫 從遠端倉庫克隆 建立版本庫 版本庫又名倉庫,英文名repository,可以

Git分享(—)—工作流程常用命令

一、Git初識 Git是一款免費且開源的版本控制工具,廣泛應用於網際網路公司,尤其對於  多合作、多迭代的開發團隊,更是必不可少。 Github是開源的遠端倉庫,同時也是開源協作社群,分享交流開源專案

DAY-8 Linux基礎常用命令(4)

打開 ip地址 grep 軟件包 linux基礎 tro mks 官網 vim 一、制作swap分區(命令) swapon –s 查看當前激活狀態的swap分區 free –m 以m為單位查看分區 swapoff關閉分區 swapon打開分區 添加swap分區——mks

DAY-9 Linux基礎常用命令(5)

mod conf 自己的路 linux操作 解包 二進制安裝 netstat iptables usr 一、Samba(類似共享網盤) 1、功能:Linux操作系統給win用戶共享文件用 2、如何部署 》》準備環境:iptables –F(清除防火墻)、systemctl

【安全牛學習筆記】tcpdump簡介常用命令實例

信息安全 tcpdump security+ tcpdump簡介 tcpdump 是一個運行在命令行下的嗅探工具。它允許用戶攔截和顯示發送或收到過網絡連接到該 計算機的TCP/IP和其他數據包。tcpdump 是一個在BSD許可證下發布的自由軟件。

Docker使用技巧常用命令

span server 登錄用戶 serve java 本地 oot ps 命令 用戶 安裝docker 檢查curl包是否安裝? which curl 如果curl沒有安裝的話,則先更新apt源,並安裝curl,如下: apt-get updateapt-get

redis配置文件全解常用命令

redisredis配置文件全解及常用命令1.基本配置daemonize no 是否以後臺進程啟動databases 16 創建database的數量(默認選中的是database 0)save 900 1 #刷新快照到硬盤中,必須滿足兩者要求才會觸發,即900秒之後至少1個關鍵字發生變化。save 3

Linux操作系統常用命令

命令1. 常用命令:1.1 ls命令:1.2 cd 命令: 1.3 cal命令 cal是calendar的意思1.4 echo 命令echo -necho -e "The year is 2018. \nToday is 8. "2. 命令類型:3. date:時間管理:Linux: