分佈式版本控制系統——Git首次上傳本地倉庫至github

一、什麼是版本控制

我們在寫論文的時候,總是會不停地修改,下面這種狀況相信很多人都遇到過:
在這裏插入圖片描述
因爲不清楚自己刪除的東西以後是否會用到,新增的又是否正確,所以在每次修改之後都“另存爲”一個新的文檔,這時候要是有一個軟件能幫你記錄每一個版本,並且能顯示出各個版本之間的差異,那就方便多了。幸運的是,這樣的軟件還真有,Git 就是其中一個,功能如下所示:
在這裏插入圖片描述

二、版本控制系統的分類

版本控制可以分爲兩大主流類——集中式版本控制系統,分佈式版本控制系統,接下來討論他們之間的區別。

1.集中式版本控制系統

對於集中式版本控制系統(如CVS、SVN)而言,版本庫是集中存放在中央服務器的,開發者之間的合作方式是共用一個倉庫(repository),無論這個倉庫是在本地還是在遠端,所有成員都共同 存取 於同一個倉庫,如下圖所示:
在這裏插入圖片描述
集中式版本控制系統最大的 缺點 就是必須聯網才能工作,開發者想要取出代碼、提交到倉庫,或是對檔案庫做一些其他的操作,都必須在能夠連網的環境下進行,這會大大降低開發效率。

2.分佈式版本控制系統

分佈式版本控制系統(如Git)使得每個人的電腦上都是一個完整的版本庫,這樣,在工作的時候,就不需要聯網了,因爲版本庫就在你自己的電腦上。
在分佈式版本控制系統中,開發者可以進行“推”(push)的動作,其意義是將自身檔案庫中的變更送至其他的檔案庫;也可以進行“拉”(pull)的動作,其意義是獲取其他檔案庫的變更。
Git的優勢不單是不必聯網這麼簡單,後面我們還會看到Git極其強大的分支管理,其中最重要的意義在於檔案庫中包含了完整的版本管理數據、例如提交信息、版本變化記錄等等。 因此,所有對版本控制系統的操作,都可以直接在本機端的檔案庫中進行,包括提交、分支、合併、回退等。

三、Git的本地安裝與基本操作

參考文檔:https://www.cnblogs.com/specter45/p/github.html
https://www.cnblogs.com/wangmingshun/p/5424767.html
比較詳細Git Bash命令解釋:http://www.admin10000.com/document/5374.html
以下的介紹,都在Windows操作系統下

1.下載安裝git
2. Git Bash的操作
  • 打開Git Bash工具
  • 綁定用戶
    因爲Git是分佈式版本控制系統,所以需要填寫用戶名和郵箱作爲一個標識,用戶和郵箱爲github註冊的賬號和郵箱。
    輸入語句:
    git config --global user.name "qichoy"
    git config --global user.email "[email protected]"
    
    git config –global 參數,有了這個參數,表示你這臺機器上所有的Git倉庫都會使用這個配置,當然你也可以對某個倉庫指定的不同的用戶名和郵箱。
    在這裏插入圖片描述
  • 創建本地倉庫
    cd G:		//進入G磁盤
    cd Git		//進入本地倉庫的文件夾
    mkdir test	//創建test文件夾
    cd test		//進入test文件夾下
    git init	//把這個目錄變成git可以管理的倉庫
    
    在這裏插入圖片描述
    創建完後,會在G/Git/test文件夾下創建一個.git隱藏文件夾(可以通過 “查看->顯示隱藏文件” 查看到)

四、爲Github賬戶設置SSH key

1.生成SSH key

先查看電腦中,C盤用戶目錄是否有.ssh目錄,看看裏面是否有rd_rsa和id_rsa.pub這兩個文件,如果有則跳到下一步;如果沒有這個目錄,通過$ ssh-keygen -t rsa -C “[email protected]來生成。
1)是路徑確認,直接按回車存默認路徑即可
2)直接回車鍵,這裏我們不使用密碼進行登錄, 用密碼太麻煩;
3)直接回車鍵
在這裏插入圖片描述

2. 查看ssh key公鑰

生成成功後,去對應目錄C:\Users\ASUS\.ssh裏(ASUS爲電腦用戶名,每個人不同)用記事本打開id_rsa.pub,得到ssh key公鑰(id_rsa.pub裏面的全部內容)

3.爲github賬號配置ssh key

在這裏插入圖片描述

  • 然後打開SSH keys菜單, 點擊Add SSH key新增密鑰,填上標題,跟倉庫保持一致吧,好區分。接着將id_rsa.pub文件中key粘貼到此,最後Add key生成密鑰吧。
    在這裏插入圖片描述
  • title設置成倉庫的名稱——此時爲test,成功後顯示如下:
    在這裏插入圖片描述

五、上傳本地項目到github

創建新倉庫的指令:

git init //把這個目錄變成Git可以管理的倉庫
git add sqlist.h //將工作文件修改提交到本地暫存區
git add . //將所有修改過的工作文件提交到本地暫存區
git commit -m "first commit" //把文件提交到倉庫
git remote add origin [email protected]:qichoy/test.git //將本地倉庫和遠程倉庫關聯
git push -u origin master //把本地倉庫的項目推送到遠程倉庫(github)上
1.將所有的項目文件放到文件夾G:/Git/test/中,示例:

在這裏插入圖片描述

2.將所有文件添加到倉庫
git add .		//將所有文件添加到倉庫
git commit -m "說明語句" 	//把文件提交到倉庫,雙引號內是提交註釋。

在這裏插入圖片描述

3.關聯github倉庫
  • 到github test倉庫複製倉庫地址,注意點擊SSH
  • 也可以使用https協議,但是SSH速度快。
    在這裏插入圖片描述
  • 然後執行指令:git remote add origin [email protected]:qichoy/test.git
4.上傳本地代碼
  • 執行指令:git push -u origin master
  • 敲一個:yes, 然後回車
    在這裏插入圖片描述
  • 上面出現錯誤,是因爲倉庫地址複製錯了
5.最終效果

可以看到,我們上傳了三個文檔,其中,git commit -m "提交文檔",說明語句會在每個文檔後出現說明。
在這裏插入圖片描述

6.bug解決:
  1. bug1說明
    -由於之前在關聯github倉庫時,輸錯了地址,所以需要重新關聯,但出現瞭如下bug:fatal: remote origin already exists.
    正常情況下,如果已經關聯過一次遠程倉庫後,繼續輸入 git remote add origin……則會出現以上的問題,可以直接push,無需關聯。
    bug1解決方案
    如果輸入
    $ git remote add origin [email protected]:qichoy(github帳號名)/test(倉庫名)git
    提示出錯信息:fatal: remote origin already exists.
    解決辦法如下:
    1、先輸入$ git remote rm origin
    2、再輸入$ git remote add origin [email protected]:djqiang/gitdemo.git就不會報錯了!
    更多參考:https://blog.csdn.net/dengjianqiang2011/article/details/9260435
  2. bug2說明
    -如果在創建遠程倉庫時,勾選了Initliaze this repository with a README(即創建倉庫時,系統自動創建了一個README文件),在將本地倉庫內容推送到遠程倉庫(git push -u origin master)時會出現如下bug:error: failed to push some refs to '[email protected]:qichoy/LIST.git'
    在這裏插入圖片描述
    在這裏插入圖片描述
    bug2產生原因
    本地的倉庫目錄中沒有遠程倉庫裏的README文件
    bug2解決方案
    先將遠程倉庫中的文件拉下來,使得本地倉庫也有README文件。
    先輸入語句:git pull --rebase origin master
    在這之後,輸入git push -u origin master即可上傳成功

六、git的一些說明

  • 說明
git init (初始化,如果不是git項目,這一步必須要有),通常情況下,本地倉庫只需要執行一次初始化
git add README.md
git commit -m "first commit"
git remote add origin [email protected]:qichoy/test.git(創建本地與遠程倉庫的紐帶,通常只需要進行一次關聯)
git push -u origin master (第一次推送master分支的所有修改內容)
//此後,每次本地提交後(在完成`git add README.md`和`git commit -m "說明"`之後)
//只要有必要,就可以使用命令`git push origin master`推送最新修改
//這個也可以簡略地寫成:`git push`,將本地倉庫的內容推送至遠程倉庫github
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章