github工具是一個很好用的工具,可以在本地建立一個git倉庫,存儲當前寫的程序或者數據,然后通過ssh與github建立聯系。具體怎么實現,下面進行介紹。
1、首先要安裝git 軟件
在Linux上安裝Git
首先,你可以試着輸入git
,看看系統有沒有安裝Git:
$ git The program 'git' is currently not installed. You can install it by typing: sudo apt-get install git
如果之前沒有安裝過git的話,輸入上面的git命令就會出現The program 'git' is currently not installed. You can install it by typing:
sudo apt-get install git
,然后輸入sudo apt-get install git,就可以安裝git了。
2、安裝好了git之后就可以創建版本庫了。什么是版本庫呢?版本庫又名倉庫,英文名repository,你可以簡單理解成一個目錄,這個目錄里面的所有文件都可以
被Git管理起來,每個文件的修改、刪除,Git都能跟蹤,以便任何時刻都可以追蹤歷史,或者在將來某個時刻可以“還原”。
所以,創建一個版本庫非常簡單,首先,選擇一個合適的地方,創建一個空目錄:
$ mkdir learngit $ cd ./learngit $ pwd /home/sawyer/learngit
pwd
命令用於顯示當前目錄。
我的電腦下面顯示如下:
sawyer@sawyer-ThinkPad:~$ cd ./learngit sawyer@sawyer-ThinkPad:~/learngit$ pwd /home/sawyer/learngit
3、在home下面建立好了一個文件夾之后就可以建立一個git倉庫了。
建立git倉庫的命令如下:
通過git init
命令把lerarngit這個目錄變成Git可以管理的倉庫:
$ git init Initialized empty Git repository in /home/sawyer/learngit/.git/
我的電腦顯示如下:
sawyer@sawyer-ThinkPad:~/learngit$ git init Initialized empty Git repository in /home/sawyer/learngit/.git/
現在就已經初始化好了,已經建立了一個git本地倉庫。在命令行輸入ls無法顯示.git,因為這是個隱藏文件。可以使用ls -al命令,然后會有顯示,或者打開對應的文件夾,
使用快捷鍵ctrl+h,就可以看到在learngit 文件夾下面有一個.git文件。
4、在本地庫添加一個文件命令如下
$ nano readme.txt
在readme.txt 中輸入一句文本:this is my first git,然后保存
和把大象放到冰箱需要3步相比,把一個文件放到Git倉庫只需要兩步。
第一步,用命令git add
告訴Git,把文件添加到倉庫:
$ git add readme.txt
執行上面的命令,沒有任何顯示,這就對了,
第二步,用命令git commit
告訴Git,把文件提交到倉庫:
$ git commit -m "first git"
我的電腦顯示如下:
sawyer@sawyer-ThinkPad:~/learngit$ git commit -m "first git" [master (root-commit) 48819ed] first git 1 file changed, 1 insertion(+) create mode 100644 readme.txt
簡單解釋一下git commit
命令,-m
后面輸入的是本次提交的說明,可以輸入任意內容,當然最好是有意義的,這樣你就能從歷史記錄里方便地找到改動記錄。
git commit
命令執行成功后會告訴你,1 file changed
:1個文件被改動(我們新添加的readme.txt文件);1 insertions
:插入了一行內容(readme.txt有一行內容)。
為什么Git添加文件需要add
,commit
一共兩步呢?因為commit
可以一次提交很多文件,所以你可以多次add
不同的文件。
初始化一個Git倉庫,使用git init
命令。
添加文件到Git倉庫,分兩步:
- 使用命令
git add <file>
,注意,可反復多次使用,添加多個文件; - 使用命令
git commit -m <message>
,完成。
以上是建立了一個本地倉庫的完整過程。下面將要介紹把建好的本地庫上傳到github上面。
5、創建一個ssh,這里解釋一下,如何把本地的倉庫上傳到github呢,首先需要先建立一個聯系,將本地倉庫與github建立聯系使用ssh。
第1步:創建SSH Key。在用戶主目錄下,看看有沒有.ssh目錄,如果有,再看看這個目錄下有沒有id_rsa
和id_rsa.pub
這兩個文件,如果已經有了,可直接跳到下一步。如果沒有,打開Shell(Windows下打開Git Bash),創建SSH Key:
$ ssh-keygen -t rsa -C "youremail@example.com“
你需要把郵件地址換成你自己的郵件地址,然后一路回車,使用默認值即可,由於這個Key也不是用於軍事目的,所以也無需設置密碼。
如果一切順利的話,可以在用戶主目錄里找到.ssh
目錄,里面有id_rsa
和id_rsa.pub
兩個文件,這兩個就是SSH Key的秘鑰對,id_rsa
是私鑰,不能泄露出去,id_rsa.pub
是公鑰,可以放心地告訴任何人。
第二步:將新生成的key添加到ssh-agent中(這一步必不可少):
# start the ssh-agent in the background eval "$(ssh-agent -s)" Agent pid 59566 ssh-add ~/.ssh/id_rsa
第3步:登陸GitHub,打開“Account settings”,“SSH Keys”頁面:
然后,點“Add SSH Key”,填上任意Title,在Key文本框里粘貼id_rsa.pub
文件的內容,點“Add Key”,你就應該看到已經添加的Key。
小提示,如果不想手動打開id_rsa.pub,可以選擇使用命令進行復制,命令代碼如下:
sudo apt-get install xclip # Downloads and installs xclip. If you don't have `apt-get`, you might need to use another installer (like `yum`) xclip -sel clip < ~/.ssh/id_rsa.pub # Copies the contents of the id_rsa.pub file to your clipboard
為什么GitHub需要SSH Key呢?因為GitHub需要識別出你推送的提交確實是你推送的,而不是別人冒充的,而Git支持SSH協議,所以,GitHub只要知道了你的公鑰,就可以確認只有你自己才能推送。
當然,GitHub允許你添加多個Key。假定你有若干電腦,你一會兒在公司提交,一會兒在家里提交,只要把每台電腦的Key都添加到GitHub,就可以在每台電腦上往GitHub推送了。
最后友情提示,在GitHub上免費托管的Git倉庫,任何人都可以看到喔(但只有你自己才能改)。所以,不要把敏感信息放進去。
6、現在本地庫和github已經建立起了連接誒,現在就可以將本地庫的信息上傳到github庫中了。在將本地庫上傳到github時需要在github上建立一個庫。
現在的情景是,你已經在本地創建了一個Git倉庫后,又想在GitHub創建一個Git倉庫,並且讓這兩個倉庫進行遠程同步,這樣,GitHub上的倉庫既可以作為備份,又可以讓其他人通過該倉庫來協作,真是一舉多得。
首先,登陸GitHub,然后,在右上角找到“Create a new repo”按鈕,創建一個新的倉庫:
在Repository name填入learngit
,其他保持默認設置,點擊“Create repository”按鈕,就成功地創建了一個新的Git倉庫:
目前,在GitHub上的這個learngit
倉庫還是空的,GitHub告訴我們,可以從這個倉庫克隆出新的倉庫,也可以把一個已有的本地倉庫與之關聯,然后,把本地倉庫的內容推送到GitHub倉庫。
現在,我們根據GitHub的提示,在本地的learngit
倉庫下運行命令:
$ git remote add origin git@github.com:Deep/learngit.git
請千萬注意,把上面的Deep
替換成你自己的GitHub賬戶名,否則,你在本地關聯的就是我的遠程庫,關聯沒有問題,但是你以后推送是推不上去的,因為你的SSH Key公鑰不在我的賬戶列表中。
添加后,遠程庫的名字就是origin
,這是Git默認的叫法,也可以改成別的,但是origin
這個名字一看就知道是遠程庫。
下一步,就可以把本地庫的所有內容推送到遠程庫上:
$ git push -u origin master
把本地庫的內容推送到遠程,用git push
命令,實際上是把當前分支master
推送到遠程。
由於遠程庫是空的,我們第一次推送master
分支時,加上了-u
參數,Git不但會把本地的master
分支內容推送的遠程新的master
分支,還會把本地的master
分支和遠程的master
分支關聯起來,在以后的推送或者拉取時就可以簡化命令。
以上6步完成了本地倉庫的創建,本地倉庫與github建立聯系,本地倉庫上傳到githuab倉庫,下面介紹如何從github上面下載文件。
7、如何克隆github的數據,這里我以下載剛才上傳的文件為例進行克隆下載。
$ git clone git@github.com:Deep/learngit.git
這個命令就可以克隆Deep帳號下的learngit了。
通過下載的這個learngit,可以修改里面的文件,在使用下面這個命令
$ git push origin master
就可以把修改的內容在上傳到github上了。實現了修改github的內容。
這篇隨筆主要是自己在學習git與github做的記錄,學習內容參考了廖雪峰老師的網站,他寫的很好,很細致,適合新手學習,在此貼上鏈接:https://www.liaoxuefeng.com/
里面有很多的教程。