1. 程式人生 > >版本控制之Coding.net Git

版本控制之Coding.net Git

一、Git 忽略一些檔案不加入版本控制

      在git中如果想忽略掉某個檔案,不讓這個檔案提交到版本庫中,可以使用修改 .gitignore 檔案的方法。這個檔案每一行儲存了一個匹配的規則例如:
    (注:#此為註釋,將被 Git 忽略)
*.a       # 忽略所有 .a 結尾的檔案
!lib.a    # 但 lib.a 除外
/TODO     # 僅僅忽略專案根目錄下的 TODO 檔案,不包括 subdir/TODO
build/    # 忽略 build/ 目錄下的所有檔案
doc/*.txt # 會忽略 doc/notes.txt 但不包括 doc/server/arch.txt
      這樣設定了以後 所有的 .pyc 檔案都不會新增到版本庫中去。

      另外 git 提供了一個全域性的 .gitignore,你可以在你的使用者目錄下建立 ~/.gitignoreglobal 檔案,以同樣的規則來劃定哪些檔案是不需要版本控制的。
       需要執行 git config --global core.excludesfile ~/.gitignoreglobal來使得它生效。
其他的一些過濾條件
* ?:代表任意的一個字元
* *:代表任意數目的字元
* {!ab}:必須不是此型別
* {ab,bb,cx}:代表ab,bb,cx中任一型別即可
* [abc]:代表a,b,c中任一字元即可
* [ ^abc]:代表必須不是a,b,c中任一字元
       由於git不會加入空目錄,所以下面做法會導致tmp不會存在 tmp/*             //忽略tmp資料夾所有檔案
       改下方法,在tmp下也加一個.gitignore,內容為
      *
      !.gitignore
      還有一種情況,就是已經commit了,再加入gitignore是無效的,所以需要刪除下快取      
git rm -r --cached ignore_file
      注意: .gitignore只能忽略那些原來沒有被track的檔案,如果某些檔案已經被納入了版本管理中,則修改.gitignore是無效的。
      正確的做法是在每個clone下來的倉庫中手動設定不要檢查特定檔案的更改情況。      
git update-index --assume-unchanged PATH    #在PATH處輸入要忽略的檔案。
      另外 git 還提供了另一種 exclude 的方式來做同樣的事情,不同的是 .gitignore 這個檔案本身會提交到版本庫中去。用來儲存的是公共的需要排除的檔案。而 .git/info/exclude 這裡設定的則是你自己本地需要排除的檔案。 他不會影響到其他人。也不會提交到版本庫中去。
      .gitignore 還有個有意思的小功能, 一個空的 .gitignore 檔案 可以當作是一個 placeholder 。當你需要為專案建立一個空的 log 目錄時, 這就變的很有用。 你可以建立一個 log 目錄 在裡面放置一個空的 .gitignore 檔案。這樣當你 clone 這個 repo 的時候 git 會自動的建立好一個空的 log 目錄了。

二、Git 伺服器提交材料及其常用命令
 1、向Git伺服器提交材料
       伺服器建立好一個空的版本庫(需管理伺服器的人建立)後,要想伺服器提交原始碼,主要步驟須做如下:
    a)遞迴刪除指定目錄下的.git檔案    
find . -name .git | xargs rm -fr 
    b)遞迴刪除指定目錄下的.gitignore檔案  
 find . -name .gitignore | xargs rm -fr
    c)git clonehttp://[email protected]:xxx/git/xxx //克隆版本庫
        會有如下提示:       
正克隆到 'xxx'...
warning: 您似乎克隆了一個空版本庫。
    d)git add *    //把所有檔案加入版本控制
    e)git commit  //本地提交
         //第一次用git push直接push會報錯,應該先用git push origin master ,以後直接用git push就行
    f)git push  //推到伺服器
        會有如下提示:
Password for 'http://[email protected]:xxx':    
No refs in common and none specified; doing nothing.   
Perhaps you should specify a branch such as 'master'.   
Everything up-to-date  
    g)git push origin master  //把本地master分支推送到遠端伺服器origin,.git隱藏目錄下的config檔案可以看得到這些資訊。
       會有如下提示:       
Password for 'http://[email protected]:xxx':  
Everything up-to-date
 2、Git常用命令
       以下是一些我自己常用到的git命令:
git clone :從伺服器上克隆程式碼;
git pull :從伺服器上拉取最新程式碼(需在原有版本上,即電腦上存在該系統版本);
git branch -a :檢視系統分支相關資訊;
git checkout ***:切換分支;
git log :檢視該系統版本里修改的相關資訊;
git show ID(git log上顯示的數字資訊):可以檢視該ID的補丁詳細資訊;
    ......
3、gitignore(對於較大的系統一定需忽略生成的檔案)
     定義:在版本控制伺服器上忽略某些指定的檔案。
    編寫方式:
*~
*.swp
./kernel/
*.swo
*.bak
out/
/version.sh
三、exclude

git 還提供了另一種 exclude 的方式來完成同樣的忽略

不同的是 .gitignore 這個檔案本身會push到庫中去儲存的是公共的需要排除的檔案。

而exclude 是自己本地忽略的設定,不會影響到其他人,也不會提交到庫中去

exclude 檔案所在位置:.git/info/exclude 

可以在專案檔案路徑下,使用下列命令
vim .git/info/exclude  
#然後再#號下的一行寫入要忽略的檔案  
#如:  
#*.o

相關推薦

版本控制Coding.net Git

一、Git 忽略一些檔案不加入版本控制      在git中如果想忽略掉某個檔案,不讓這個檔案提交到版本庫中,可以使用修改 .gitignore 檔案的方法。這個檔案每一行儲存了一個匹配的規則例如:    (注:#此為註釋,將被 Git 忽略)*.a # 忽略所有

Git版本控制ubuntu搭建Git服務器

open sudoer nload git倉庫 詳細 測試 lan inf 解決   Git是一個開源的分布式版本控制系統,可以有效、高效的處理從很小到非常大的項目版本管理。使得開發者可以通過克隆(git clone),在本地機器上拷貝一個完整的Git倉庫,也可以將代碼提交

版本控制SVN與GIT

**版本控制是指對軟體開發過程中各種程式程式碼、配置檔案及說明文件等檔案變更的管理,是軟體配置管理的核心思想之一。專案在開發過程中要用到相應的配置管理工具對配置項(包括各個階段的產物)進行變更控制,配置管理的使用取決於專案規模和複雜性及風險的水平。軟體的規模越大

版本控制svn和git簡述

參考: 在一個團隊的工作中,掌握版本控制系統的使用是對每一個工程師最基本的要求,作為剛入職的菜鳥我來說,更是需要快速掌握的,下面就簡單記錄一下svn以及git版本控制的基礎知識。 1. 版本控制的概念                                    

版本控制git學習

  最近學習了一下版本控制中比較符合開發者氣質的Git,這裡做一個總結。一來梳理所學的內容;二來也作為起點後續繼續豐富。學習的方式主要為網路學習和個人實踐。推薦兩個學習網頁,互相參考必有所成。   部落格園:http://www.cnblogs.com/best/archive/2017/09/07/747

最全Pycharm教程(39)——Pycharm版本控制本地Git用法

  1、主題   介紹如果通過Pycharm使用本地Git集。   2、準備工作     (1)PyCharm版本為2.7或更高   (2)已經建立一個工程   (3)Git外掛可用,對應可執行檔案在 Git page頁面正確配置   3、建立一個Git集

版本控制工具Svn及Git

例如 ech source -s lan https git add 更改 date 首先介紹svn,屬於老牌的工具 svn ci 提交代碼 alias commit svn up 更新代碼 alias update svn st 修改的文件 alias st svn di

一小時精通SVN版本控制 準備工作

java svn 代碼管理 版本控制 團隊協作 為什麽使用svn:軟件系統通常由團隊協作完成,各開發人員如何協作並行開發?我們希望團隊成員可以並行開發,彼此的修改不會沖突,保留工作過程中產生的所有內容的所有版本. 什麽是svn:Subversion(SVN) 是一個開源的版本控制系統, 它

Android 版本控制工具SVN與GIT 區別, Git使用詳情

為什麼要用版本控制工具? 多人協作開發 方便程式碼統一管理 常用的版本控制工具有哪些? CVS, SVN, GIT GIT 和 SVN 的區別 Git 是目前世界上最先進的分散式版本控制系統 SVN 是集中式的管理工具 1.版本庫是集中放在中央伺服器的,而幹活的時

版本控制svn建立版本

3.2 配置版本庫 ①為什麼要配置版本庫? Subversion是將檔案資料資訊儲存到版本庫中進行管理的,為了滿足使用者的不同需求,Subversion允許使用者對版本庫目錄進行定製。 ②在一個非

版本控制svn啟動服務

***啟動伺服器端程式*** ①SVN伺服器必須處於執行狀態才能響應客戶端請求,幫助我們管理專案檔案。所以我們必須將SVN伺服器啟動起來。啟動SVN 伺服器有兩種方法,一個是命令列方式,一個是註冊Windows服務。 ②命令列方式 [1]命令格式 主命

版本控制:SVN和GIT的一些使用感受(續)

背景:         緊接上文,從本地獨立開發者角度出發,繼續對從SVN集中式版本管理轉向GIT分散式版本管理的細節進行介紹。此次以自己具體的開發例項為基礎,給出GIT管理從整體專案SVN伺服器檢出來的本地工作副本的詳細過程。 GIT與SVN的結合:         為了

版本控制分散式和集中式

Linus一直痛恨的CVS及SVN都是集中式的版本控制系統,而Git是分散式版本控制系統,集中式和分散式版本控制系統有什麼區別呢? 先說集中式版本控制系統,版本庫是集中存放在中央伺服器的,而幹活的時候,用的都是自己的電腦,所以要先從中央伺服器取得最新的版本,然後開始幹活

版本控制svn命令列下檢出、提交、更新

4 使用命令列模式訪問SVN伺服器 4.1 檢出 ①首先進入自己的工作目錄,例如:D:\DevWorkSpace\SVNSpace ②執行svn checkout命令,命令格式如下 格式 svn checkout svn://SVN伺服器主機地址/

版本控制工具SVN和GIT

一、為什麼會出現原始碼管理工具 為了解決在軟體開發過程中,由原始碼引發的各種不爽、繁瑣的問題, 二、不採用原始碼管理工具會出現什麼問題 1、無法後悔:做錯了一個操作後,沒有後悔藥可以吃 2、版本備份:費空間、費時間 3、版本混亂:因版本備份過多造成混亂,難以找回正確的想要的版本 4、程式碼衝突:多

iOS版本控制工具(SVN,GIT,SourceTree)

公司的實際開發中,在天朝使用較多的還是SVN,因為SVN是集中式的,在天朝上班你們都懂的!  -----------------svn-----------------   一:最常用基本步驟--- 下載(完整下載,第一次),將伺服器的專案下載到本地開始開發 sv

SVN (TortioseSVN) 版本控制忽略路徑(如bin、gen)

在SVN版本控制時,新手經常會遇到這樣的問題: 轉自:http://mpqi.iteye.com/blog/14315851、整個專案一起提交時會把bin 、 gen 、 .project 一同提交至伺服器 2、避擴音交編譯、本地配置等檔案在專案中單獨對src、res進行提

版本控制:SVN和GIT的一些使用感受

背景:          原本在學校跟隨導師做專案的時候,就一直在使用版本管理,主要是用來記錄專案的修改,專案成員之間的溝通和交流。使用的服務端是Visual SVN,客戶端是TortoiseSVN,常用的TortoiseSVN指令也僅限於SVN Update和SVN Co

Git版本控制:Gitlab及Coding.net的使用

Gitlab介紹 GitLab是利用 Ruby on Rails 一個開源的版本管理系統,實現一個自託管的Git專案倉庫,可通過Web介面進行訪問公開的或者私人專案。它擁有與Github類似的功能,能夠瀏覽原始碼,管理缺陷和註釋。可以管理團隊對倉庫的訪問,它非常易於瀏覽提交過

如何選擇版本控制系統二---Git的研發應用場

nal fix idt max-width 設計理念 ted 過程 style ria 之前寫了一篇《如何選擇版本控制系統 ---為什麽選擇Git版本控制系統》,地址是:http://www.cnblogs.com/goldenfish/p/6876864.html,有興趣