python後階段的學習思路以及對git的基本理解
來自專欄 python學習1 人贊了文章
最近感覺思緒很亂,想自己開發一個微信後台,於是知道了webpy框架,但是我自己又想學習django框架,因為django不僅可以用來開發後台,也可以用來搭建個人博客,於是這幾天通讀了django教程。大致上,明白了網站後台的工作機制。後期會逐步在專欄中介紹。
說了上面一通廢話,我決定得理一下思路。
最近主要想做兩個事情。一是學習django框架(簡單的微信公眾號後台,簡單的個人博客搭建,基本的linux知識(雖然我下學期會學習linux操作系統)),二是通讀計算機網路,最近跟導師要了一個關於ipv6應用技術的課題,雖然有大佬撐腰,但是我也不能太廢吧(2333)。
既然,這樣那就很簡單了:要學習,總得時不時逛GitHub吧,逛GitHub看見好的代碼可以copy下來自己學習吧,雖然你可以直接點downloads,但是,作為一個coder,會不會有點low??! 所以,還是先來學習一下git的基本用法和命令。下面進入正題。
首先給大家推薦一個廖雪峰大佬寫的git教程:Git教程,寫的很詳細,值得一讀。
一.對git的理解
它是一個分散式版本控制系統。可以這樣理解:每台裝有git的電腦都可以當作是一個是一個伺服器,它含有你當前需要處理的項目的全部內容,你可以通過將項目上傳至一個中轉站(如GitHub),與你的其他朋友一起交換各自所修改的內容。假設哪天GitHub倒閉了,你仍然可以將項目上傳到其他中轉站上(如碼雲),然後與你的朋友互換信息。git的版本庫可以分為本地版本庫,和遠程版本庫兩個部分來介紹。
二.本地倉庫
所謂的版本控制,也就是對項目進行控制,項目是什麼? 在我看來,不就是一個個文件夾嘛。(可能不太準確,歡迎各路大神來踢場,求輕噴),git能夠很好的記錄下,你對文件夾做出的每一個改動,比如哪個文件夾下的那個文件的第幾行,被你刪除了。 當然,git只能記錄文本信息的具體改動,對於二進位的內容,他只能記錄所發生的內容的變化。git也不是神仙下凡,並不是哪一個文件夾他都能控制,所以,你想控制哪一個項目,你就得先對其初始化。
比如,我在桌面上新建一個test文件夾,如果讓它能夠被git控制,使用命令:(在這裡git的安裝我就不說了,很簡單,請自行百度)
git init
這樣,test這個文件夾就能被git控制了。
下面,我們我們寫一個txt文件,將其放入test中,
但是這樣文件並沒有被添加到git倉庫中,所以我們還需要:
git add .git commit -m"第一次提交"
這樣這個文件夾就被我們添加到了git本地倉庫。
但是,怎樣與遠程倉庫聯繫起來呢?
三.將本地項目上傳至遠程倉庫
比如我自己的GitHub,我們先將本地倉庫與遠程倉庫聯繫起來:
git remote add origin https://github.com/reBiocoder/python.git
用 git remote -v查看一下:
可以看見已經關聯上了。
將test中的文件上傳上去,在此之前,需要注意到的一個問題是,如果你的GitHub倉庫中已經存在內容了,如果,你現在直接git push 是不能成功的,因為遠程倉庫中的內容你沒有進行同步。所以,要上傳的話,首先:
git pull origin master:master#等同於(git fetch origingit merge origin/master)
pull命令的規則:git pull <遠程主機名> <遠程分支名>:<本地分支名>
然後再git push origin master,它的意思是,將本地的項目上傳到遠程主機(GitHub)。
此時,如果你的遠程倉庫中,本來就存在內容,而且他們之前完全沒有進行過關聯,你可能會遇到這個問題:
提示「non-fast-forward」,其實,出現得原因就是因為你在同步兩個完全不同得項目,所以git給你自動禁止了,如果要解除禁制的話,使用下面的命令:
git pull origin master --allow-unrelated-histories
這樣即可同步,然後在進行push
最後可以看見,文件被同步上,我的GitHub了。
四.修改遠程項目並再次上傳
上面我們主要講的是當本地有一個項目的時候,如何將它與遠程倉庫關聯並上傳。但是,如果GitHub上本來就有一個項目,而你需要的,僅僅是對它進行修改,那麼,應該怎麼做呢?
下面我們來進行一個操作:將我GitHub上的一個倉庫的兩個分支進行合併,然後再本地修改之後,上傳到遠程倉庫。
比如,我的GitHub上的一個倉庫:reBiocoder/python,打開之後是這樣的:
下面我們將它clone到本地:
git clone https://github.com/reBiocoder/python
可以看見,下載成功。在文件夾中的顯示就是:
可以看見,這就是剛剛從遠程下載的倉庫python。
然後再將我倉庫的另一個分支也clone下來:
git clone -b reBiocoder-patch-1 https://github.com/reBiocoder/python.git
如果你要clone某個倉庫的一個分支的話,使用命令:
git clone -b <分支名> <倉庫地址>
然後將分支的內容,合併成一個文件夾。之後進行上傳
git add .git commit -m"二次更新"git push origin master
可以看見,上傳成功! 我們再來看一下,GitHub上的內容:
已被成功修改!
上面具體介紹了git的常見基本命令,有什麼問題大家可以評論和我交流。
更多優質內容請關注微信公眾號:生物信息與python。
推薦閱讀:
※小米研發和產品是怎麼做版本控制的?
※淺談git入門(二):git基本命令講解(本地庫?遠程庫)
※Git由淺入深之分支管理
※目前有什麼好的js和css版本控制程序?