小白文 初識git-版本分支管理及遠程倉庫提交

爲何使用git

有一個項目a,已經完成了基本的功能,測試下來是穩定的,接下來想增長新的功能,並用對其完善,但這個過程當中可能會出現bug,甚至影響到全局php

這個時候,咱們就但願保存一個穩定版本的文件,另外複製一份文件進行改進,這樣即使遇到問題也能夠回到穩定的狀態,並能夠進行對比來進行dbug
在學習版本控制工具前,方法是複製文件夾,而後在新的文件夾中進行修改,可是明顯這樣會形成多餘的文件夾,管理極爲混亂linux

因此就須要咱們的版本分支管理工具git登場了git

安裝

從官網下載對應的exe進行安裝便可github

clipboard.png
只要這邊改爲第一個,保證安全性,其餘就一路next就能夠了windows

配置

$ git config --global user.name "name" //填名字
$ git config --global user.email 123@163.com //郵箱

初次提交

在項目文件夾中右鍵菜單,Git Bash here
或者在其餘地方Git Bash here以後,命令行裏輸入cd 路徑名轉到項目文件夾中安全

$ git init  //初始化倉庫

下一步就要把文件所有提交到倉庫的暫存區工具

$ git add . //能夠把.改爲要提交的文件名來單獨提交

不過在這以前,先要肯定哪些文件不要提交
經過IDE(不能直接在文件夾右鍵新建)(我用的vscode,在命令行輸入$ Code .gitignore)新建一個.gitignore文件,在裏面寫要忽略的文件學習

//忽略規則
•    bin/: 忽略當前路徑下的bin文件夾,該文件夾下的全部內容都會被忽略,不忽略 bin 文件
•    /bin: 忽略根目錄下的bin文件
•    /*.c: 忽略 cat.c,不忽略 build/cat.c
•    debug/*.obj: 忽略 debug/io.obj,不忽略 debug/common/io.obj 和 tools/debug/io.obj
•    **/foo: 忽略/foo, a/foo, a/b/foo等
•    a/**/b: 忽略a/b, a/x/b, a/x/y/b等
•    !/bin/run.sh: 不忽略 bin 目錄下的 run.sh 文件
•    *.log: 忽略全部 .log 文件
•    config.php: 忽略當前路徑的 config.php 文件

而後要把暫存區的文件裏提交到正式的倉庫裏測試

$ git commit -m '這裏能夠加提交的註釋'

若是.gitignore文件沒有在提交前創建,或者不當心提交了不想要提交的文件,那能夠經過下面的命令行進行取消ui

$ git reset 文件名 取消暫存區的文件 
$ git rm -r --cached 文件名   移除正式倉庫裏的文件,加上--cached就不會把本地的文件刪除

提交以後,或者未提交時,均可以經過這句來查看倉庫目前的狀態
是否有未跟蹤的文件,或者暫存區裏有尚爲正式提交的文件,都會有所顯示

$ git status

若是工做目錄顯示是乾淨的,也就完成了咱們的初次提交

On branch master
nothing to commit, working directory clean

在提交中,可能會遇到這樣的問題

warning: LF will be replaced by CRLF

windows中的換行符爲 CRLF, 而在linux下的換行符爲LF
因此在執行add . 時出現提示
解決方法:

$ git config --global core.autocrlf false  //禁用自動轉換

查看提交歷史

$ git log
$ git log -a   //更詳細

將穩定版提交到github

在github的我的主頁中,新創建一個倉庫
複製倉庫頁面的url
在Git Bash中執行

$ git clone url

這樣就會在Git Bash所打開的地方,創建出一個新的文件夾,裏面會有網上倉庫的內容(若是在創建的時候有勾選Readme說明文件的話,就能夠看到它)
而後把穩定版裏的全部文件複製到這個新文件中
進行以前初次提交的操做

$ git add .
$ git commit -m ''

$ git commit -a -m '' //把上面兩句簡寫到一塊兒

而後進行倉庫的遠程提交

$ git push

輸入帳號密碼後,即把文件提交到了github上的倉庫中

分支與合併

回到咱們最初問題上來
在保存了穩定版本到倉庫後
咱們能夠建立一個分支

$ git branch fen    //建立分支
$ git checkout fen  //切換到新的這個分支上

$ git checkout -b fen  //也能夠兩句合寫

而後就能夠對其中的文件進行修改
能夠隨時切換回主線,git會把文件都還原成穩定版的狀態

$ git checkout master

文件修改

修改了文件內容以後
若是還沒有提交暫存,想查看對比倉庫裏的文件的修改之處 :

$ git diff

若是已經提交到暫存,想查看對比倉庫裏的文件的修改之處 :

$ git diff –staged

若是此時又對文件內容作了修改
再使用下面這句

$ git diff

顯示的就是文件和暫存區內文件的對比(不是倉庫了)

查看文件的具體狀態

$ git status -s
M     //已經提交到暫存的修改文件
 M    //尚爲提交到暫存的修改文件
MM    //已經提交到暫存,並在暫存後繼續修改的文件
A     //新提交到暫存的文件
??    //尚爲跟蹤的文件

分支合併

查看分支狀況

$ git branch
* fen
  master

在修改完這個分支以後,測試爲穩定,但願將其合併到主線上,進行版本更新

$ git checkout master   //切換回主線
$ git merge fen         //把支線合併過來
$ git merge -d fen      //刪除此分支

至此,就完成了一次工做流程


目前用到的都只是我的的版本管理,沒有涉及多人協做
更具體的學習仍是要參照官方文檔
https://git-scm.com/book/zh/v...

相關文章
相關標籤/搜索