以前基本上都是使用SVN進行版本控制,最近公司內計劃將版本控制遷移到Git,並使用GitLab做爲項目倉庫html
本文主要結合Git與GitLab來進行基本配置和使用,而Git工具的語法規則不在本文討論範圍內,若有須要請自行查閱語法手冊git
一、 Git工具
二、 Git安裝
三、 Git生成SSH KEY
四、 GitLab設置SSH KEY
五、 初始化項目
六、 編寫忽略控制的文件 .gitignore
七、 git 核心概念簡析
7.1 、 工做區
7.2 、 版本庫
7.3 、 暫存區
7.4 、 管理修改
八、 遠程倉庫
九、 項目添加到遠程倉庫
十、 項目推送到遠程倉庫
十一、 提交權限設置
附錄: 一些資源github
這個按照安裝指南一步一步操做就行了ssh
ssh-keygen -t rsa -f ~/.ssh/id_rsa_droi -C 'liuqing_hu@126.com'
工具
會在.ssh文件加下生成兩個文件 id_rsa_droi 和 id_rsa_droi.pub,其中id_rsa_droi.pub文件就存放着咱們須要的SSH-KEYgitlab
設置路徑 :Profle Settings > SSH Keyspost
當前咱們的項目都是使用SVN進行版本控制,而且幾乎全部項目都是處在上線或維護狀態,即不是一個空項目(固然一個新建的項目操做也是同樣的)網站
第一步要作的就是初始化項目,進入項目目錄後,執行命令git init
即可以對項目使用Git進行管理url
通常項目中有一些緩存或配置文件,咱們不想對他們進行管理,此時咱們能夠將這些文件加入到.gitignore文件中
一、使用Git Bash工具建立.gitignore
執行命令touch .gitignore
二、.gitignore語法
gitignore語法
示例
# Windows: 這是一個註釋,如下三行爲忽略控制的文件 Thumbs.db ehthumbs.db Desktop.ini
工做區(Working Directory) 、 暫存區(Staging Area) 、 遠程倉庫或版本庫(.git directory | Repostory)
請閱讀《工做區和暫存區》
就是項目的文件目錄(電腦裏能看到的目錄),全部修改和變動狀態都是發生在工做區
請再次閱讀《工做區和暫存區》
工做區有一個隱藏目錄.git,這個就是Git的版本庫。其中Git版本庫裏有個很重要的信息就是暫存區
請再次閱讀《工做區和暫存區》
請再次閱讀《工做區和暫存區》
瞭解完工做區和暫存區的基本概念後,基本上咱們就開始幹活了,當工做區文件有修改時,咱們須要將這個修改添加到暫存區git add modify.file
,後一步就是將暫存區的文件提交到當前分支的Git版本庫git commit -m "[modify] some change"
一切運行的很完美,咱們如今基本上可以使用Git來進行項目管理了,可是還差 最後一步就是將本地項目PUSH到遠程倉庫,這樣別的小夥伴纔可以clone和pull 咱們的項目
到目前爲止,咱們全部的工做都是在本地機器上完成的,而咱們公司已經爲咱們建立好了代碼託管服務GitLab,因此如今咱們要作的就是將本地項目添加並PUSH到遠程倉庫GitLab。在開始以前,還記得咱們生成的SSH-KEY麼?不要忘記在GitLab設置好。
語法git remote add <shortname> <url>
將添加一個新的遠程 Git 倉庫,同時指定一個你能夠輕鬆引用的簡寫
拿TestGit項目舉例(這是一個示例,請替換成本身的提交地址)
git remote add origin http://gitlab.test.com/huliuq...
將本地項目添加到遠程倉庫後,就能夠把項目PUSH到遠程倉庫,這邊其餘小夥伴即可以訪問項目更新
語法git push [remote-name] [branch-name]
拿TestGit項目舉例
第一次推送使用 git push -u origin master
,以後可使用 git push origin master
通常狀況下,咱們都是須要賬號密碼受權纔可以想遠程倉庫PUSH更新的,我不是很喜歡配置全局的賬號信息到Git配置裏。這又帶來一個問題,每次咱們提交更新的時候都須要輸入賬號或者密碼,很麻煩。
有什麼辦法能夠解決這個問題呢?就是須要用到憑證存儲這個功能
進入到咱們工做的項目目錄後,在Git Bash工具下輸入git help -a | grep credential-
查找相關權限選項
通常會看到credential-store之類的選項。
接下來輸入git config credential.helper store
便會把咱們PUSH的賬號密碼信息給存儲到.git/config文件中
當咱們再次向遠程倉庫PUSH更新時,當前項目便不會在須要咱們錄入賬號或密碼數據了
可使用git help credential-store
查看幫助信息
Documentation 這是一個語法大全
Git教程 史上最淺顯易懂的Git教程
try git 一個在線練習Git語法的網站