首頁 > 開發工具 > Git > 三十分鐘帶你Git入門(整理總結)

三十分鐘帶你Git入門(整理總結)

WBOY
發布: 2022-03-01 19:55:58
轉載
2924 人瀏覽過

這篇文章為大家帶來了關於git入門的相關知識,其中包含了環境配置、基本理論、專案建置以及文件操作等相關問題,希望對大家有幫助。

三十分鐘帶你Git入門(整理總結)

推薦學習:《Git入門教學

版本控制

什麼是版本控制(版本迭代,新的版本!版本管理器)

版本控制(Revision control)是一種在開發的過程中用於管理我們對檔案、目錄或工程等內容的修改歷史,方便查看更改歷史記錄,備份以便恢復以前的版本的軟體工程技術。

  • 實現跨區域多人協同開發
  • 追蹤和記載一個或多個文件的歷史記錄
  • 組織和保護你的原始程式碼和文件
  • 統計工作量
  • 並行開發,提高開發效率
  • 追蹤記錄整個軟體的開發流程
  • 減輕開發人員的負擔,節省時間,同時降低認為錯誤

簡單來說就是用來管理多人協同開發專案的技術。

沒有進行版本控製或版本控製本省缺乏正確的流程管理,在軟體開發過程中將會引入許多問題,如軟體程式碼的一直型,軟體內容的冗餘,軟體流程的事務性,軟體開發過程的並發性,軟體原始碼的安全性,以及軟體的整合等問題。

常見的版本控制工具

主流的版本控制器有以下內容:

  • Git
  • SVN( Subversion)
  • CVS(Concurrent Visual System)
  • VSS(Micorosoft Visual SourceSafe)
  • TFS(Team Foundation Server)
  • Visual Studio Online

版本控制產品(Perforce、Rational ClearCase、RCS(GNU Revision Control System)、Serena Dimention、SVK、BitKeeper、Monotone、Bazaar、Mercurial、SourceGear Vault),現在影響力最大且使用最廣泛的是Git和SVN。

1.本地版本控制

記錄文件每次的更新,可以對每個版本做一個快照,或是記錄補丁文件,適合個人用,如RCS。

2.集中版本控制 SVN

所有的版本資料都保存在伺服器上,協同開發者從伺服器上同步更新或上傳自己的修改。

所有的版本資料都存在伺服器上,使用者的本地只有自己先前所同步的版本,如果不連網的話,使用者就看不到歷史版本,也無法切換版本驗證問題或在不同分支工作。而且,所有數據都保存在單一的伺服器上,有很大的風險這個伺服器會損壞,這樣就會丟失所有的數據,當然可以定期備份。代表產品:SVN、CVS、Vss。

3.分散式版本控制 GIT

每個分支都有全部程式碼。

所有版本資訊倉庫全部同步到本地的每個用戶這樣就可以在本地查看所有版本歷史可以離線在本地提交,只需在聯網時push到相應的伺服器或其他用戶那裡。由於每個使用者哪裡保存的都是所有的版本資料只要有一個使用者的設備沒有問題就可以恢復所有的資料但這增加了本地儲存空​​間的佔用。

不會因為伺服器損壞或網路問題,造成不能運作的情況。

4.Git和SVN最主要的區別

SVN是集中式版本控制系統,版本庫是集中放在中央伺服器的,而工作的時候用的都是自己的電腦,所以首先要從中央伺服器得到最新的版本,然後工作,完成工作後需要把自己昨晚的活推送到中央伺服器。集中式版本控制系統是必須連網才能運作的,對網路寬頻要求較高。

GIT是分散式版本控制系統沒有中央伺服器每個人電腦就是完整的版本庫,工作的時候不需要連網了,因為版本都在機子電腦上。協同的方法是這樣的:例如自己在電腦上改了文件A其他人也在電腦上改了文件A,這時,你們兩之間只需要把各自的修改推送給對方,就可以互相看到對方的修改了。 Git可以直接看到更新了哪些程式碼和檔案。

Git是目前世界上最先進的分散式版本控制系統。

Git環境設定

開啟Git官網https://git-scm.com,下載git對應作業系統的版本。

所有東西下載慢的話就可以找鏡像!

官網下載太慢,可以使用淘寶鏡像下載:http://npm.taobao.org/mirrors/git-for-windows/

啟動Git

#Git Bash:Unix與Linux風格的命令列,使用最多,推薦最多

Git CMD:Windows風格的命令列

Git GUI:圖形介面的Git,不建議初學者使用,盡量ixan熟悉常用指令

基本的Linux指令學習

cd:改變目錄

##cd..回退到上一個目錄,直接cd進入預設目錄

pwd:顯示目前所在目錄路徑

ls(ll):都是列出目前目錄中的所有檔案只不過ll列出的內容跟為詳細

touch:新一個檔案如touch index.js就會在目前目錄下新建一個index.js檔案

rm:刪除一個檔案

mkdir:新建一個目錄,就是新建一個資料夾。

rm-r:刪除一個資料夾,rm-r src刪除src目錄

mv 移動檔案

reset 重新初始化終端機、清除螢幕

# clear清屏

history查看指令歷史

help幫助

exit退出

#表示註解

#Git配置

所有的設定檔其實都保存在本機

設定使用者名稱和信箱:

git config --global user.name "名稱"

    git config --global user.email 22222@qq.com
  • git config --system --list查詢系統給予設定的
  • git config --global --list查詢全域設定
  • # Git基本理論
  • Git本機有三個工作區域:工作目錄(Working Directory)、暫存區(Stage、Index)、資源庫(Repository或Git Directory)。如果再加上遠端的git倉庫(Remote Directory)就可以分成四個工作區域。文件在這四個區域之間的轉換關係如下:

Workspace:工作區,就是你平常存放專案程式碼的地方 Index/Stage:暫存區:用於暫時存放你的改動,事實上它只是一個文件,保存即將提交到文件列表信息

Repository:倉庫區(或本地倉庫),就是安全存放數據的位置,這裡面有你提交到所有版本的資料。其中HEAD指向最新放入倉庫的版本。

Remote:遠端倉庫,託管程式碼的伺服器,可以簡單的認為是你專案組中的一台電腦用於遠端資料交換。

本地的三個區域確切的說應該是git倉庫中HEAD指向的版本:

 Directory:使用Git管理的一個目錄,也就是一個倉庫,包含我們的工作空間和Git的管理空間。

WorkSpace:需要透過Git進行版本控制的目錄和文件,這些目錄和文件組成了工作空間

.git:存放Git管理資訊的目錄,初始化倉庫的時候自動建立。

Index/Stage:暫存區,或叫待提交更新區,在提交進入repo之前,我們可以把所有的跟新放在暫存區。

Local Repo:本地倉庫,一個存放在本地的版本庫;HEAD會只是目前的開發分支(branch)。

Stash:隱藏,是一個工作狀態保存棧,用於保存/恢復WorkSpace中的臨時狀態。

工作流程

git的工作流程一般是這樣的:

###1、在工作目錄中加入、修改檔案;# #####2,將需要進行版本管理的檔案放入暫存區域;######3,將暫存區域的檔案提交到Git倉庫。 ######因此,git管理的檔案有三種狀態:已修改(modified),已暫存(staged),已提交(committed)。 ###############Git專案搭建######建立工作目錄與常用指令######工作目錄(WorkSpace)一般就是你希望Git幫助你管理的資料夾,可以是你專案的目錄,也可以是空目錄,建議不要有中文。 ######日常使用只要記住下圖6個指令:###################本地倉庫搭建:######## 建立本地倉庫的方法有兩種:一種是建立全新的倉庫,另一種是複製遠端倉庫。 ###

1.建立全新的倉庫,需要用GIT管理的專案的根目錄執行:

#在当前目录新建一个Git代码库
$ git init初始化
登入後複製

2.執行後可以看到,僅僅在專案目錄多出了一個.git目錄,關於版本等的所有資訊都在這個目錄裡面。

複製遠端倉庫 

1、另一種方式是複製遠端目錄,由於是將遠端伺服器上的長褲完全鏡像一份至本地!

#可镂一个项目和它的整个代码历史(版本信息)
$ git clone [url]
登入後複製

2、去gitee或github上複製一個測試 

Git檔案運算

檔案4種狀態

##版本控制就是對文件的版本控制,要對文件進行修改、提交等操作,首先要知道文件目前在什麼狀態,不然可能會提交了現在還不想提交的文件,或者要提交的文件沒提交上。

    Untracked:未跟踪,此檔案在資料夾中,但並沒有加入到git庫,不參與版本控制,透過git add狀態變成staged。
  • Unmodify:檔案已經入庫,未修改,即版本庫中的檔案快照內容與資料夾中完全一致,這種類型的檔案有兩種去處,如果他被修改,而變成Modified 。如果使用git rm移除版本庫,則成為Untracked檔案
  • Modified:檔案已修改,僅僅是修改,並沒有進行其他的操作,這個檔案也有兩個去處,透過git add可進入暫存staged狀態,使用git checkout,則丟棄修改過,返回到unmodify狀態,這個git checkout即從庫中取出文件,覆蓋當前修改!
  • Staged:暫存狀態,執行git commit ,則將修改同步到庫中,這時庫中的檔案和本機檔案又變成一致,檔案為Unmodify狀態。執行git reset HEAD filename取消暫存,檔案狀態變成Modified。

查看檔案狀態

上面說檔案有四種狀態,透過如下指令可以檢視到檔案的狀態:

#查看执行文件状态
git status [filename]
#查看所有文件状态
git status
#添加所有文件到暂存区
git add .
#提交暂存区中的内容到本地仓库 -m提交信息
git commit -m "注释内容"
登入後複製

忽略文件

有些時候我們不想吧某些文件納入版本控制中,例如資料庫文件,臨時文件,設計文件等

在主目錄下建立「.gitignore 」文件,此文件有以下規則:

    忽略文件中的空行或以井號(#)開始的行將會被忽略。
  1. 可以使用Linux通配符。例如:星號(*)代表任意多個字符,問好(?)代表一個字符,方括號([abc])代表可選字符範圍,大括號({string1,string2})代表可選的字符串等。
  2. 如果名稱的最前面有一個感嘆號(!),表示例外規則,將不會被忽略。
  3. 如果名稱的最前面是一個路徑分隔符號(/),表示要忽略的檔案在此目錄下,而子目錄中的檔案不忽略。
  4. 如果名稱的最後面是一個路徑分隔符號(/),表示要忽略的是此目錄下該名稱的子目錄,而非檔案(預設檔案後目錄都忽略)。
  5. #为注释
    *.txt        #忽略所有 .txt结尾的文件,这样的话上传就不会被选中
    !lib.txt    #但lib.txt除外
    /temp        #进忽略项目根目录下的TODO文件,不包括其他目录temp
    build/       #忽略build/目录下的所有文件
    doc/*.txt    #忽略doc/notes.txt 但不包括 doc/server/arch.txt
    登入後複製
.gitignore檔案內容

#java
*.class
*.log
*.lock

#Package Files #
*.jar
*.war
*.ear
target/

# idea
.idea/
*.iml

*velocity.log*

### STS ###
.apt_generated
.factorypath
.springBeans

### IntelliJ IDEA ###
*.iml
*.ipr
*.iws
.idea
.classpath
.project
.settings/
bin/

*.log
tmp/

#rebel
*rebel.xml*
登入後複製
使用碼雲

    註冊登入碼雲,完善個人資訊
  1. 設定本機保定SSH公鑰,實現免密碼登入!
  2. # 进入 C:\Userss\Administrator\.ssh 目录
    # 生成公钥
    ssh-keygen -t rsa
    登入後複製
     3.將公鑰資訊public key 加入碼雲端帳戶即可!

     4.使用碼雲建立一個自己的倉庫 

IDEA中整合Git

1.新專案,綁定git

#將遠端的git檔案目錄拷貝到專案中即可或在git同名目錄下建立(git檔案為遠端複製的git檔案)

刷新後idea會出現

2、修改文件,使用IDEA操作git

    加入到暫存區git add .
  • commit提交  git commit
  • #push到遠端倉庫git push
3、提交測試

 

Git分支

git分支中常用指令

#列出所有本地分支
git branch
#列出所有远程分支
git branch -r
#新建一个分支,但仍然停留在当前分支
git branch [branch-name]
#新建一个分支,并切换到该分支
git checkout -b [branch]
#合并指定分支到当前分支
git merge [branch]
#删除分支
git branch -d [branch-name]
#删除远程分支
git push origin --delete [branch-name]
git branch -dr [remote/branch]
登入後複製
推薦學習:《

Git教學

以上是三十分鐘帶你Git入門(整理總結)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
git
來源:csdn.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板