1. 程式人生 > >git入門

git入門

finger span centos 集中式版本控制 初始 協同 mail all log

什麽是git

git的分布式版本控制系統,自誕生於 2005 年以來,Git 日臻成熟完善,迅速成為最流行的分布式版本控制系統,在高度易用的同時,仍然保留著初期設定的目標。它的速度飛快,極其適合管理大項目,它還有著令人難以置信的非線性分支管理系統,可以應付各種復雜的項目開發需求。2008年,GitHub網站上線了,它為開源項目免費提供Git存儲,無數開源項目開始遷移至GitHub,包括jQuery,PHP,Ruby等等。

什麽是分布式版本控制系統

說道分布式版本控制系統,我們先來說一下集中式的版本控制系統:

集中式版本控制系統,版本庫是集中存放在中央服務器的,而大家工作的時候,用的都是自己的電腦,所以要先從中央服務器取得最新的版本,然後開始工作,工作完成,再把自己的修訂推送給中央服務器。這類系統,都有一個單一的集中管理的服務器,保存所有文件的修訂版本,而協同工作的人們都通過客戶端連到這臺服務器,取出最新的文件或者提交更新。

技術分享圖片

現在再來看一下分布式的版本控制系統:

布式版本控制系統根本沒有“中央服務器”,每個人的電腦上都是一個完整的版本庫,這樣,你工作的時候,就不需要聯網了,因為版本庫就在你自己的電腦上。既然每個人電腦上都有一個完整的版本庫,那多個人如何協作呢?比方說你在自己電腦上改了文件A,你的同事也在他的電腦上改了文件A,這時,你們倆之間只需把各自的修改推送給對方,就可以互相看到對方的修改了。

技術分享圖片

GitHub與Git的區別

GitHub與Git是完全不同的兩個東西。在Git中,開發者將代碼存入名叫“Git倉庫”的資料庫中並加以使用。而GitHub則是在網絡上提供Git倉庫的一項服務。也就是說GitHub上公開的軟件源代碼全都由Git進行管理。

GIT下載與安裝

windows下可以去官網下載:https://git-for-windows.github.io/,然後點點即可!

centos下:yum -y install git

GIT初始化設置

設置用戶名和郵箱

技術分享圖片
liubin@DESKTOP-E3SKG7C MINGW64 ~
$ git config --global user.name "LiuBin"
 
liubin@DESKTOP-E3SKG7C MINGW64 ~
$ git config --global user.email "[email protected]"
View Code

這個命令會在用戶家目錄下生成.gitconfig文件

技術分享圖片
liubin@DESKTOP-E3SKG7C MINGW64 ~
$ cat .gitconfig
[user]
        email = 1546893728@qq.com
        name = LiuBin
View Code

然後就需要去註冊一個github賬號啦~ 這裏就不在敖述~~~~~

git-ssh配置和使用

生成密鑰

$ ssh-keygen -t rsa -b 4096 -C "[email protected]"

Enter file in which to save the key (/c/Users/liubi/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/liubi/.ssh/id_rsa.
Your public key has been saved in /c/Users/liubi/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:Au44y7WZnG13GQgrfRMCvLXezRpDfuT8E5NQgw6Ssa8 [email protected]
The key‘s randomart image is:
+---[RSA 4096]----+
| . .o . |
| o +.. . o |
| .+.o o . . |
| ...+.o + |
| .o.BSO . . |
| o. +oO B + |
| o o.E. * + o |
| . = *. o o o |
| o *... . . |
+----[SHA256]-----+

然後連續3個回車,出現這些泡泡就代表你成功了。

然後就會得到一些文件:

技術分享圖片

登錄Github,添加ssh

技術分享圖片

將 id_rsa.pub的內容全部復制到以下:

技術分享圖片

兩個區域和四個狀態

Git把管理的文件分為兩個區域和四個狀態

技術分享圖片

工作區:

當前開發程序所在目錄稱為工作區,即:工作開發都是在該目錄,該區域的文件會有狀態的變化且狀態由git自動檢測,如果程序中文件做任何操作(增、刪、改),文件狀態均會被檢測到,可以使用 【git status】命令查看。

liubi@DESKTOP-9HC44IV MINGW64 /e/項目/grg/blog (master)
$ ls
index.html  README.md

liubi@DESKTOP-9HC44IV MINGW64 /e/項目/grg/blog (master)
$ git status
On branch master
Your branch is behind origin/master by 1 commit, and can be fast-forwarded.
  (use "git pull" to update your local branch)

nothing to commit, working tree clean

liubi@DESKTOP-9HC44IV MINGW64 /e/項目/grg/blog (master)
$ touch hello.md

liubi@DESKTOP-9HC44IV MINGW64 /e/項目/grg/blog (master)
$ git status
On branch master
Your branch is behind origin/master by 1 commit, and can be fast-forwarded.
  (use "git pull" to update your local branch)

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        hello.md

nothing added to commit but untracked files present (use "git add" to track)

liubi@DESKTOP-9HC44IV MINGW64 /e/項目/grg/blog (master)

版本庫:

工作區檢測到有文件發生變化,那麽意味著較上一個版本之後對程序進行了修改,修改完成之後,可以當做下一版本進行提交,那麽就是執行 【git add .】 將所有文件提交到暫存區,然後再執行【git commit -m ‘又一個版本‘】提交到版本庫的分支即可,之後可以使用【git log】命令查看版本記錄。

liubi@DESKTOP-9HC44IV MINGW64 /e/項目/grg/blog (master)
$ git status
On branch master
Your branch is behind origin/master by 1 commit, and can be fast-forwarded.
  (use "git pull" to update your local branch)

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        hello.md

nothing added to commit but untracked files present (use "git add" to track)

liubi@DESKTOP-9HC44IV MINGW64 /e/項目/grg/blog (master)
$ git add .

liubi@DESKTOP-9HC44IV MINGW64 /e/項目/grg/blog (master)
$ git status
On branch master
Your branch is behind origin/master by 1 commit, and can be fast-forwarded.
  (use "git pull" to update your local branch)

Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        new file:   hello.md


liubi@DESKTOP-9HC44IV MINGW64 /e/項目/grg/blog (master)
$ git commit -m "second commit"
[master b123c2e] second commit
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 hello.md

liubi@DESKTOP-9HC44IV MINGW64 /e/項目/grg/blog (master)
$ git log
commit b123c2ee3071f1142468b2ba63f23ea4df06125b (HEAD -> master)
Author: liubin <1546893728@qq.com>
Date:   Fri Mar 16 00:24:40 2018 +0800

    second commit

commit bd9be8890fbd283adb8d1c43120006cb47c33baf
Author: liubin <1546893728@qq.com>
Date:   Thu Mar 15 23:36:00 2018 +0800

    新增index

commit 6db481f7247bcf81353cefefb50054a329aaba9a
Author: liubin <1546893728@qq.com>
Date:   Thu Mar 15 23:25:57 2018 +0800

    first commit

liubi@DESKTOP-9HC44IV MINGW64 /e/項目/grg/blog (master)

GIT常用的基礎命令

  • git init:初始化,表示即將對當前文件夾進行版本控制。
  • git status:查看Git當前狀態,如:那些文件被修改過、那些文件還未提交到版本庫等。
  • git add filename:將指定文件添加到版本庫的暫存狀態。
  • git commit -m ‘提交信息‘:將暫存區的文件提交到版本庫的分支。
  • git log:查看提交記錄。

基礎入門就到這裏了,關於更多的git的知識,請見以後的博客或者參考官網的book: https://git-scm.com/book/zh/v2

git入門