更新時間:2020-09-09 16:12:53 來源:動力節點 瀏覽1431次
Git是目前世界上最先進的分布式版本控制系統。
SVN是集中式版本控制系統,版本庫是集中放在中央服務器的,而干活的時候,用的都是自己的電腦,所以首先要從中央服務器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服務器。集中式版本控制系統是必須聯網才能工作,如果在局域網還可以,帶寬夠大,速度夠快,如果在互聯網下,如果網速慢的話,就納悶了。
Git是分布式版本控制系統,那么它就沒有中央服務器的,每個人的電腦就是一個完整的版本庫,這樣,工作的時候就不需要聯網了,因為版本都是在自己的電腦上。既然每個人的電腦都有一個完整的版本庫,那多個人如何協作呢?比如說自己在電腦上改了文件A,其他人也在電腦上改了文件A,這時,你們兩之間只需把各自的修改推送給對方,就可以互相看到對方的修改了。
msysgit是windows版的Git,如下:
需要從網上下載一個,然后進行默認安裝即可。安裝完成后,在開始菜單里面找到"Git-->Git Bash",如下:
點擊打開Git Bash;
安裝完成后,還需要最后一步設置,在命令行輸入如下:
git?config?--glogal?user.name?"--";
git?config?--glogal?user.email?"[email protected]";
因為Git是分布式版本控制系統,所以需要填寫用戶名和郵箱作為一個標識。
注意:git config--global參數,有了這個參數,表示你這臺機器上所有的Git倉庫都會使用這個配置,當然你也可以對某個倉庫指定的不同的用戶名和郵箱。
1.創建版本庫。
什么是版本庫?版本庫又名倉庫,英文名repository,你可以簡單的理解一個目錄,然后進入該目錄。
首先要明確下,所有的版本控制系統,只能跟蹤文本文件的改動,比如txt文件,網頁,所有程序的代碼等,Git也不列外,版本控制系統可以告訴你每次的改動,但是圖片,視頻這些二進制文件,雖能也能由版本控制系統管理,但沒法跟蹤文件的變化,只能把二進制文件每次改動串起來,也就是知道圖片從1kb變成2kb,但是到底改了啥,版本控制也不知道。
第一步:使用命令git add readme.txt添加到暫存區里面去。
第二步:用命令git commit告訴Git,把文件提交到倉庫。
git?commit?-m?"提交的注釋"
通過命令git status來查看是否還有文件未提交,說明沒有任何文件未提交,但是我現在繼續來改下readme.txt內容,比如我在下面添加一行2222222222內容,繼續使用git status來查看下結果, readme.txt文件已被修改,通過git diff readme.txt 看下readme.txt文件到底改了什么內容;
git?statu//查看當前狀態
git?diff?readme.txt//查看修改內容
2.版本回退: 使用命令git log,查看下歷史記錄
1?git?log//查看歷史記錄
現在我想使用版本回退操作,我想把當前的版本回退到上一個版本,要使用什么命令呢?可以使用如下2種命令,第一種是:git reset--hard HEAD^那么如果要回退到上上個版本只需把HEAD^改成HEAD^^以此類推。那如果要回退到前100個版本的話,使用上面的方法肯定不方便,我們可以使用下面的簡便命令操作:git reset--hard HEAD~100即可。
3.理解工作區與暫存區的區別?
工作區:就是你在電腦上看到的目錄,比如目錄下testgit里的文件(.git隱藏目錄版本庫除外)。或者以后需要再新建的目錄文件等等都屬于工作區范疇。
版本庫(Repository):工作區有一個隱藏目錄.git,這個不屬于工作區,這是版本庫。其中版本庫里面存了很多東西,其中最重要的就是stage(暫存區),還有Git為我們自動創建了第一個分支master,以及指向master的一個指針HEAD。
遠程倉庫。
在了解之前,先注冊github賬號,由于你的本地Git倉庫和github倉庫之間的傳輸是通過SSH加密的,所以需要一點設置:
第一步:創建SSH Key。在用戶主目錄下,看看有沒有.ssh目錄,如果有,再看看這個目錄下有沒有id_rsa和id_rsa.pub這兩個文件,如果有的話,直接跳過此如下命令,如果沒有的話,打開命令行,輸入如下命令:
1?ssh-keygen??-t?rsa?–C?“[email protected]”
由于我本地此前運行過一次,所以本地有,如下所示:
id_rsa是私鑰,不能泄露出去,id_rsa.pub是公鑰,可以放心地告訴任何人。
第二步:進入id_rsa.pub,
第三步:登錄github,打開”settings”中的SSH Keys頁面,然后點擊“Add SSH Key”,填上任意title,在Key文本框里黏貼id_rsa.pub文件的內容。點擊Add Key,你就應該可以看到已經添加的key。
第四步:驗證是否添加成功
如何添加遠程庫?
現在的情景是:我們已經在本地創建了一個Git倉庫后,又想在github創建一個Git倉庫,并且希望這兩個倉庫進行遠程同步,這樣github的倉庫可以作為備份,又可以其他人通過該倉庫來協作。
首先,登錄github上,然后在右上角找到“create a new repo”創建一個新的倉庫:testgit。
目前,在GitHub上的這個testgit倉庫還是空的,GitHub告訴我們,可以從這個倉庫克隆出新的倉庫,也可以把一個已有的本地倉庫與之關聯,然后,把本地倉庫的內容推送到GitHub倉庫。
現在,我們根據GitHub的提示,在本地的testgit倉庫下運行命令:
git?remote?add?origin??//加上倉庫名字testgit
把本地庫的內容推送到遠程,使用git push命令,實際上是把當前分支master推送到遠程。
git?push?-u?origin?master?//把本地倉庫分支master推送到原倉庫去
把本地庫的內容推送到遠程,使用git push命令,實際上是把當前分支master推送到遠程。
由于遠程庫是空的,我們第一次推送master分支時,加上了–u參數,Git不但會把本地的master分支內容推送的遠程新的master分支,還會把本地的master分支和遠程的master分支關聯起來,在以后的推送或者拉取時就可以簡化命令。推送成功后,可以立刻在github頁面中看到遠程庫的內容已經和本地一模一樣了,上面的要輸入github的用戶名和密碼。
從現在起,只要本地作了提交,就可以通過如下命令:
git?push?origin?master
把本地master分支的最新修改推送到github上了,現在你就擁有了真正的分布式版本庫了。
2.如何從遠程庫克隆?
git?clone?""http://加上倉庫地址
附:git基本常用命令:
mkdir: // XX (創建一個空目錄 XX指目錄名) pwd: // 顯示當前目錄的路徑。 git init //把當前的目錄變成可以管理的git倉庫,生成隱藏.git文件。 git add XX //把xx文件添加到暫存區去。 git commit –m “XX” //提交文件 –m 后面的是注釋。 git status //查看倉庫狀態 git diff XX // 查看XX文件修改了那些內容 git log //查看歷史記錄 git reset --hard HEAD^ //或者 git reset --hard HEAD~ 回退到上一個版本(如果想回退到100個版本,使用git reset –hard HEAD~100 ) cat XX //查看XX文件內容 git reflog //查看歷史記錄的版本號id git checkout -- XX //把XX文件在工作區的修改全部撤銷。 git rm XX //刪除XX文件 git remote add origin https://github.com/-- //關聯一個遠程庫 git push –u origin master // –u(第一次要用-u 以后不需要)把當前master分支推送到遠程庫 git clone https://github.com/--- // 從遠程庫中克隆 git checkout –b dev //創建dev分支 并切換到dev分支上 git branch //查看當前所有的分支 git checkout master// 切換回master分支 git merge dev //在當前的分支上合并dev分支 git branch –d dev //刪除dev分支 git branch name //創建分支 git stash //把當前的工作隱藏起來 等以后恢復現場后繼續工作 git stash list //查看所有被隱藏的文件列表 git stash apply //恢復被隱藏的文件,但是內容不刪除 git stash drop //刪除文件 git stash pop //恢復文件的同時 也刪除文件 git remote //查看遠程庫的信息 git remote –v //查看遠程庫的詳細信息 git push origin master //Git會把master分支推送到遠程庫對應的遠程分支上
以上就是“git詳細教程,基礎入門學習”的詳解介紹,更多資料大家可以在動力節點官網的Java技術文檔中查找。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習