GitHub基本使用介紹

之前公司項目一直在使用SVN作為項目代碼版本控制,最近我想整理下項目中iOS端CC視頻SDK封裝,CC移動端SDK本身只提供視頻播放信息以及播放器初始化,因此需要自定義播放器的控制邏輯。當整理好了代碼準備分享時,發(fā)現(xiàn)還是Git才是版本控制的王道。

首先,要使用Git需要在GitHub上注冊一個自己的賬號

初始賬號默認只能免費創(chuàng)建公共倉庫,首先Create a New Repository

創(chuàng)建倉庫

第二部,下載安裝GitHub客戶端
Mac版GitHub
Windows版GitHub
Linux版GitHub
桌面版GitHub

配置Git

以下為在Mac環(huán)境上配置Git。

想要通過本地上傳代碼至GitHub中,必須得有一份ssh key用于驗證身份。

創(chuàng)建ssh key:

$ ssh-keygen -t rsa -C "example@youremail.com"

example@youremail.com修改為GitHub上注冊的郵箱,之后要求確認路徑和密碼,三次回車即可。

$ open ~/.ssh

創(chuàng)建ssh文件后,進入~/.ssh文件夾,會有id_rsa和id_rsa.pub兩個文件。id_rsa為私鑰,自己保存好;id_rsa.pub為公鑰,用于提供給他人使用。
打開id_rsa.pub后復制全部內容,在GitHub中,創(chuàng)建SSH時,title可隨意填寫,key為id_rsa.pub內的復制內容。完成后,還需要輸入:

$ ssh -T git@github.com

如果是第一次會提示是否continue,輸入yes就會看到:You've successfully authenticated, but GitHub does not provide shell access 。這就表示已成功連上github
此時GitHub中的ssh key左側的鑰匙圖標會變?yōu)榫G色。


新增ssh密鑰

此外,還需要配置GitHub全局的用戶名與郵箱。

$ git config --global user.name "Your Name"
$ git config --global user.email "example@youremail.com"

在GitHub創(chuàng)建完項目時,GitHub會提示如何創(chuàng)建新倉庫與push已存在的倉庫。
因為是將已有的項目文件第一次上傳,所以,首先進入項目路徑下,并創(chuàng)建一個README.md文件

$ touch README.md
$ git init
$ git add *
$ git commit -m "此處可添加提交代碼相關的注釋"
$ git remote add origin https://github.com/yourUserName/repositoryName.git
$ git push -u origin master

上述命令中,分別作用為:

  • 在項目中創(chuàng)建README.md文件;
  • 初始化git倉庫;
  • 向git添加所在目錄下的所有文件;
  • 添加提交說明;
  • 添加一個新的倉庫并連接到指定的遠程服務器上,https://github.com/yourUserName/repositoryName.git就是在GitHub上創(chuàng)建倉庫的URL;
  • 推送提交項目中的改動至遠程服務器,master可以修改為想要推送的任意分支,此處master為默認分支。
    此時,已經(jīng)把項目上傳到了GitHub指定的遠程倉庫中,目的完成。

工作流程
Git本地倉庫實際上由三個tree組成,1.工作目錄,持有實際文件 2. 暫存區(qū),臨時保存改動 3. HEAD,指向最后一次提交的結果

$ git add (文件名)

上述命令表示本地提出更改,添加至暫存區(qū)

$ git commit -m "代碼注釋信息"

上述命令表示改動已提交至HEAD,當改動在HEAD中時就可執(zhí)行以下命令提交推送至遠端倉庫:

$ git push origin (指定分支名稱)

克隆
創(chuàng)建本地倉庫的克隆版本:

$ git clone /path/to/repository

創(chuàng)建遠端服務器上的克隆版本:

$ git clone username@host:/path/to/repository

分支
創(chuàng)建倉庫時,默認只有master分支,創(chuàng)建其它分支后可在分支上開發(fā),完成后合并到主分支上。
創(chuàng)建名為“feature”并切換到該分支:

$ git checkout -b (分支名)

切換其它分支:

$ git checkout (分支名)

刪除分支:

$ git branch -d (分支名)

更新
多人開發(fā)時,在push前一定要先更新本地倉庫至最新改動,避免許多不必要的沖突:

$ git pull

合并,將指定分支合并到當前分支中:

$ git merge (指定要合并分支名)

在合并過程中,會出現(xiàn)Fast-forward詞。出現(xiàn)此情況時,當前所在分支所指向的是要提交合并分支的直接上游,當試圖合并兩個分支時,若順著一個分支能夠到達另一分支,Git只會將指針向前推進,合并操作中沒有解決的分歧。合并完成后,可以刪除之前被合并的分支。
當合并遇到?jīng)_突時,查看因包含沖突而處于未合并狀態(tài)的文件:

$ git status

當解決掉沖突之后,需要使用git add (指定文件)來將其標記為沖突已解決。
合并改動之前,可以用命令瀏覽版本差異:

$ git diff (原分支) (目標分支)

標簽
將發(fā)布的版本進行標簽標記:

$ git tag 1.1.1 xxxxxxxxxx

xxxxxxxxxx是要標記的提交ID,可使用以下命令獲?。?/p>

$ git log

撤銷本地改動

$ git checkout --(filename)

會將HEAD中的最新內容替換掉當前工作目錄中的內容,已添加到暫存區(qū)的改動以及新文件不受影響
若想放棄所有改動和提交,可將遠端倉庫中的版本獲取至本地,并將主分支指向它:

$ git fetch origin
$ git reset --hard origin/master

該文章首次發(fā)表在 簡書:我只不過是出來寫寫代碼 博客,并自動同步至 騰訊云:我只不過是出來寫寫iOS 博客

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。