git入門
什麽是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 = LiuBinView 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入門