Git与github基本操作
一.??git安裝與簡單配置
1.??????git的安裝
首先進入git的官方網站git-scm.com
下載自己電腦對應的git版本,然后點擊安裝即可
點擊上圖的紅色部分進行下載
安裝的時候直接默認即可
找到你的Git安裝位置,把快捷方式中的git bash發送到桌面,以后我們使用的就是git bash進行的操作
2.??????git的基本配置
打開git bash 為自己配置一個用戶名和郵箱
輸入命令:git config –global user.name name??(name這里你可以輸入任意你喜歡的名字)
然后輸入命令:git config –global user.email hello@163.com?? (這里的 ??hello@163.com 是你注冊github賬號用到的注冊郵箱,關于github接下來的文章會提到)
?
為git的命令配置別名
比如我們給checkout取別名co輸入命令:git config –global alias.co checkout
比如我們給branch取別名br 輸入命令:git cnfig –global alias.br branch
我們在以后的學習中會經常的時候git commit –m “xxx” 其中xxx是你輸入的一些備注信息,這里我想把commit –m 取一個別名cm,輸入命令:git config –global alias.cm “commit -m”
我們還經常使用的一個命令是git push origin master 那么我想為這個命令取一個別名pom,輸入命令:gitconfig –global alias.pom “push origin master”,這樣做之后我們每次想輸入git pushorigin master 的時候就只需要輸入git pom即可,其他的別名的使用類似
3.??????獲取git倉庫
獲取git倉庫有兩種方式分別使用git init 是初始化一個git倉庫,另外一個命令是git clone從github上面下載一個git倉庫
首先打開git bash 然后使用cd命令進入我們使用的一個目錄下面然后輸入命令:git init hello? (這里面的hello是我們給這個倉庫取得一個名字),這樣一個git倉庫就建好了
但是這里我們使用比較多的是,把一個本地已有的一個文件夾初始化成git倉庫,該如何做呢,首先我們使用cd命令進入到我們我們需要初始化的文件夾,然后直接輸入命令:git init即可
4.??????git的一些基本命令操作
我這里在一個文件下面新建了一個git倉庫,輸入命令:git init hello,作為以后的演示倉庫
查看git倉庫的狀態,首先使用cd命令進入一個hello倉庫下,然后新建一個文件,輸入命令:touch a,這個新建文件的過程我們也可以在Windows下的對應的文件下,即這個倉庫下面新建,然后輸入git status
這個時候我們發現a是一個紅色的標記,上面的英文解釋是當前倉庫下面有一個文件a,但是該文件沒有git追蹤
為了是a被記錄,我們輸入下面的命令:git add a
意思就是讓該git倉庫記錄下這個文件
再次輸入git status,就發現剛剛的那個a已經被記錄下來了
?
此時我們想刪除一個文件又該怎么做呢,這個時候使用的命令:git rm a,此時如果我們輸入ls就會發現這個目錄下面什么都沒有了
這里需要解釋的一點是,當我們在一個倉庫下面新建一個文件時,這個是我們的工作區,如果我們使用git add a之后,這個a就被添加到我們的暫存區,意思就是它此時還不是git的一個文件,只有當我們使用git commit –m “xxx”之后才把這個文件提交了
二.??Git遠程協作,github代碼托管
1.??????Git秘鑰的配置
首先進入到github的官網,用郵箱注冊一個賬號,接下來要做的就是配置秘鑰,進入到git bash 然后輸入命令:ssh-keygen –t rsa –C “hello@163.com”(這個里面的郵箱和github上面的注冊賬號保持一致),然后根據提示回車或者輸入密碼,這些密碼最好和你github的登錄密碼保持一致。當出現下圖的圖樣時,就表示你的秘鑰生成成功。
然后一路回車,使用默認值即可,由于這個Key也不是用于軍事目的,所以也無需設置密碼(下面的灰色字體部分大家不用管)
輸入如下命令讓git bash 記住剛剛輸出的密碼:ssh-agent –s
然后輸入如下命令:ssh-add ~/.ssh/id_rsa,輸入一次密碼,然后秘鑰就保存了。
下面的工作是將生成的密碼記錄到自己的github賬號上面去,我們在本地中找到C盤-用戶-主用戶文件夾下,找到.ssh文件夾,然后記事本打開一個文件id_rsa.pub,(git bash下,輸入命令:vim ~/.ssh/id_rsa.pub),然后復制里面的內容。隨后進入到自己的github上面去,添加key,打開github賬號后,找到settings選項,然后找到ssh選項,添加key,
把剛剛的內容粘貼到上面即可,然后還要給這個秘鑰起一個名字。
這樣你的秘鑰在本地的配置和github上面的配置就成功了。
2.??????Git上傳代碼到github上面
首先我們需要在github上面創建一個倉庫,然后找到該倉庫的一個URL,如下圖所示,復制該URL然后進入到git bash的終端,將剛剛創建的倉庫clone下面,輸入下面的命令:git clonehttps://github.com/NeilZhy/SmallProject.git? (這個地址我的地址,大家根據自己的實際地址進行改動)
這樣之后那個倉庫就clone下來了。
這個時候我們可以在git bash下面進入到這個倉庫下面,就會發現在github對應倉庫的內容了,如果我們在github上面的倉庫里面新建了一個文件,那么在本地的倉庫如何獲取呢,我們在git bash下的對應的倉庫目錄下輸入git fetch,這樣更新的文件就被下載下來了。
如果我們在github上面修改了一個文件,我們在本地同時修改了一個文件,這個時候我們想把本地的修改同步到github上面去,我們使用git add a.txt?? (這里假設我在倉庫里面新建的一個文件是a.txt),然后輸入命令:git commit –m “哈哈”,再輸入命令:git push,此時因為本地和github上面均有修改,這樣會報錯,此時git bash會提示我們使用git pull命令,這個命令的作用是,將github上面的內容下載下來,然后和本地的內容進行合并,此時又會提示讓我們手動去修改,因為在本地和github上面的內容不一樣。我們使用vim a.txt進行文件的修改(此時的a.txt是github修改和本地修改合并后的一個結果)。然后git add a.txt,然后git commit –m “哈哈”,最后再次使用git push就成功了。
?
總結:當我們把在本地生成秘鑰之后,把秘鑰在本地和github上面配置好之后,對于初學者來說用的最多的就是git clone xxx? (xxx部分是你的github上面的倉庫的URL) ,然后在本地進入到這個倉庫之后,把你的文件放在這個倉庫下面之后,就可是使用git add a.txt,git commit –m “哈哈”,git pushorigin master 。使用上面的三步就可以是你的代碼上傳到你的github上面了。
三.??Github Pull Request—如何為一個開源項目做貢獻
學習了上面的內容后,我們已經可以給自己的github上面上傳代碼了,那么我們不由的想問,如何查看一個別人的開源項目,又如何給這個開源項目做貢獻呢,如何把自己的代碼推送到別人的github賬號上面去呢
1.??????在github上面fork項目
首先登陸到自己的github賬號上面去,然后搜索你想要fork的項目或者用戶,這里我搜索的是一個用戶,然后點擊賬戶,進入到別人的github下面去
進入到別人的github下面之后,我們找到自己需要的一個倉庫,然后點擊進入該倉庫,點擊fork,這個時候,別人的項目就被下載到自己的github賬號上面了。
既然這個項目已經被我們拷貝到自己的github下面了,我們想往里面添加內容,這個時候我們同樣需要將其clone下來。打開終端,進入到一個你想將這個倉庫clone下來的文件夾,然后輸入命令:git clone xxx? (這個xxx是你fork下來的倉庫的URL)。一般情況下,我們要為一個項目做貢獻的時候,我們會選擇新建一個功能分支,這里我們首先進入到這個目錄下面,然后輸入命令:git checkout –b xxx? (xxx是分支名,可以自己取)。我們可以把剛剛下載下來的倉庫里面的內容進行一些修改,然后在上傳,使用git add a.txt,然后git commit –m “測試”,然后是git push origin xxx (注意這里面的xxx要是你剛剛的分支名)。
然后登陸我們的github進行查看,進入到我們剛剛fork的倉庫下面,然后點擊下圖的紅色部分,點擊xxx,就可以查看我們剛剛上傳的代碼了。
接下來我們需要創建一個New pull request,點擊上圖中第一個紅框旁邊的New pull request,這個時候我們可以查看和比較我們提交的一些內容和自己分支以及和我們下載的別人的分支的一個比較。然后點擊下圖的紅色部分,因為一般默認的master分支,我們需要改成我們的xxx分支,就可以查看我們的具體上傳的內容了。顯示的代碼部分主要是別人這個倉庫的某一分支下的內容,和我們倉庫下xxx分支下的一個差異內容。
我們點擊Create pull request,給這個pull request添加一些基本的信息。
基本信息填寫好之后,我們點擊Create pull request,這個貢獻就發送成功了。
這個時候我們登錄對方的github賬號,當然這個對方的賬號其實是我的另一個賬號,然后系統會提示有人給發送了一些代碼,然后我們把這些代碼合并,或者給對象提示,讓他繼續寫。
?
下面我們想做一個優化,就是我們本地下載的是我們自己的github賬號下的fork別人的倉庫,那么我本地需要更新別人的代碼,可以直接通過本地的一些指令去拉去別人的代碼呢。
這次我們同樣還是需要別人的那個倉庫的URL,我們打開自己的git bash終端,進入一個自己想要下載的目錄下,然后輸入命令:git remote add aaa xxx (其中的aaa是我們取得一個名字,可以理解為別人倉庫的名字,xxx就是剛剛賦值的URL)這里做的意思實際就是一個讓本地的git bash記錄一下這個URL。我們首先回到我們的主分支上面去git checkout master下次我們更新別人倉庫的代碼的時候,直接輸入命令:git fetch aaa。這樣之后別人的代碼就被更新下來了。然后輸入git merge aaa/master,這一步的意思是將下載下來的代碼和本地的代碼合并。
Remote可以理解為一個通訊錄,這里補充幾個關于remote的幾條命令:git remote rename aaa hhh? 這里是改名字的意思,gitremote? 這里是查看有幾個信息。git rmhhh? 刪除已有的信息。
總結
以上是生活随笔為你收集整理的Git与github基本操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python中requests包的安装
- 下一篇: 其他人再好,却不是你!?