
文章目錄
- 前言:我是從什么時候開始了解并接觸Github,Github是干什么的?
- 一.注冊一個GitHub賬戶
- 二.創建一個倉庫和洗掉倉庫
- 1.創建倉庫
- 2.洗掉倉庫
- 三.git配置和連接
- 1.設定用戶名和郵箱
- 2.生成密鑰(SSH Key)
- 3.驗證是否成功
- 4.將本地的倉庫關聯到github上
- 四.命令操作
- 1.將master改為main
- 2.上傳代碼
- 3.下載別人的代碼
- 4.如何查看歷史版本
- 5.如何滾回歷史版本
- 6.回退到歷史版本如何再滾回去
- 7.如何查看自己的代碼量
- 五.分支詳解
- 1.使用新分支
- 2.合并新分支
- 六.常用命令
前言:我是從什么時候開始了解并接觸Github,Github是干什么的?
現在我大二,距離我敲下第一行HelloWorld,已經四年有余,快五年了(初三就買了本《C Primer Plus》,錢還是跟我哥借的,但擋不住我現在依舊是個菜雞),當時我寫的代碼放txt里面,是這樣的:

我打算將它們保存下來,但是我發現根本就不靠譜,我記得很清楚,那個時候我還沒有電腦,編程一直是在我二姑家里用電腦學習的,為什么說它不靠譜呢,電腦不是我一個人用,所以我無法掌控,隨便一個重裝系統,我的產物就灰飛煙滅了,但是很快我找到了新的存盤,就是下面qq空間日志里面,

再后來,我上高一,家里為了我學習編程為我買了一臺筆記本,那個時候花了5000多,那么一厚踏錢就全給人家了,也不知道自己的決定對不對,于是我又將保存代碼的陣地從qq空間搬到了本地,就這樣陸陸續續持續了三年,而我的CSDN賬號也是在19年10月注冊的,也就是大學剛開學,經常使用百度解決編程問題,那么csdn肯定是點擊率最高的幾個網站之一,但就是這樣,使用了兩年多csdn的我,竟然連個賬戶都沒注冊!!!這不可思議,但好在咱進度不錯,注冊之后就一發不可收拾,瘋狂水文,這一次我又將代碼搬到了csdn上面,我將代碼作為文章保存發布,將代碼打包成資源發布,申請不到一年,于今年9月申請了博客專家并成功通過,然后就是我們文章的主角Github,我第一次真正注冊并使用是在今年的1月15日,在這之前,我只是有了解過Github,大概知道是用來保存代碼的,但當時我并不能感覺到它的強大,雖然所以人都說它強大,

記得當時查資料,花了好一段時間,才將GitHub配置好,當我將本地代碼送至遠程倉庫的那一刻時,我忍不住發了一個朋友圈:Github真香!你可能覺得我前面說了一堆廢話,但我覺得它是我成長的一個記錄,一個程序,就好像我簡介里面的那句話: 可執行檔案不是你的財富,修改程序中的經驗才是, 當你從頭走過來,才能發現其中的美好,現階段當你認為一些東西不重要時,我覺得那就是不重要的,當然學習除外啊(手動狗頭),
Github是一個git的服務器提供商 幫我們共享代碼(托管代碼) 也是一個開源平臺,可以用來下載很多知名開源專案的源代碼,在我們修改專案的時候,我們可以創建一個分支,在修改完成后將他合并到主分支,進行版本管理,
類似的版本(代碼)托管服務平臺:
碼云(gitee.com):是開源中國社區團隊推出的基于Git的快速的、免費的、穩定的在線代碼托管平臺,不限制私有庫和公有庫數量.
Coding(coding.net): 是CODING 旗下的一站式開發平臺,提供 git/svn 代碼托管,免費支持私有庫(限定)和公有庫
還有我們不得不提的CSDN新推出的codechina(手動狗頭)
上面是一個比較書面的介紹,看看就好了,我用通俗易懂的話告訴你,它可以干什么:
一.注冊一個GitHub賬戶
這個就是Github的首頁,在體驗之前,還請各位看官下載谷歌瀏覽器,我之前就是因為使用其他瀏覽器被坑慘了!

我們先來創建一個賬戶,點擊Sign up,進行賬戶注冊,

下面的 Email perferences 選項默認勾選,意思是讓github偶爾可以通過郵箱給你發送一些更新等等,

注冊成功后,會進入GitHub的歡迎頁面,這時別著急,請留意你的郵箱,github會給你發送一條郵件以此來驗證你的電子郵件,并讓你使用剛才設定的密碼登錄,



歡迎頁,你可以設定一些屬性,例如你是學生還是老師,你有沒有編程經驗等等,用github干什么,基本上可以忽略,我們繼續往下看,
二.創建一個倉庫和洗掉倉庫
1.創建倉庫



2.洗掉倉庫
點擊Settings,然后拉到最下面,

輸入倉庫名確認,即可洗掉倉庫,

三.git配置和連接
如何讓自己電腦上的代碼同步到Github上所創建的倉庫中呢?需要下載git,點我下載,選擇對應的系統,對應的版本即可,

上面是官方的下載地址,下載還是不盡人意的,每秒11kb…給大家找了國內的(點擊下載)
然后一路next,等待安裝完畢,不出意外滑鼠右鍵會顯示 Git GUI Here 和 Git Bash Here GUI是對應的圖形版本,Bash是對應的命令列版本,如果是不喜歡命令列的小伙伴可以使用GUI,如果喜歡簡潔,神秘感可以使用Bash,狗子我還是推薦命令列的,畢竟可以學到很多東西,

下面也會用Bash 幫助大家學習,如果感覺到bash黑框框字小,可以按住ctrl+滑鼠滾輪縮放哦,
1.設定用戶名和郵箱
git config --global user.name "xxxxxxx"xxxxx代表你的用戶名
git config --global user.email "xxxxxxxx"xxxxx代表你的郵箱
2.生成密鑰(SSH Key)
ssh-keygen -t rsa -C "xxxxxxx"xxxxx代表你的郵箱
出現上圖,就說創建成功啦,再去用戶主目錄里找到.ssh檔案夾,里面有id_rsa和id_rsa.pub兩個檔案,這兩個就是SSH Key的秘鑰對,id_rsa是私鑰,不能泄露,id_rsa.pub是公鑰,可以公開,

接下來到GitHub右上角,打開“Account settings”–“SSH Keys”頁面,然后點擊“Add SSH Key”,填上Title(隨意寫),在Key文本框里粘貼 id_rsa.pub檔案里的全部內容,


3.驗證是否成功
$ ssh -T git@github.com
如果是初次設定,會出現一個yes/no的選項,直接選擇yes即可,

如果出現hi xxxx 表明你已經成功,
4.將本地的倉庫關聯到github上
使用Bash ,選擇一個你代碼所要存盤的位置,找到你剛創建的倉庫并點擊code,復制下面的SSH,并輸入以下命令:
git clone git@github.com:FdogMain/fdogtest.git


之后,你所指定的路徑下會生成一個和倉庫同名的檔案夾,里面包含了一個.git檔案夾和剛才我們創建的README.md檔案,

至此,git和GitHub連接成功,
四.命令操作
1.將master改為main
我們寫點簡單的代碼,并放在fdogtest檔案夾下,并在bash演示如何上傳我們的代碼,在這之前有一些更改,有興趣的話可以了解一下,
從2020年10月1日開始,Github將所有“master分支”一律改名為“main分支”,且最初在 Git 中寫下“master”一詞的開發者 Petr Baudis 也于 6 月份在社交網站上表明立場稱,自己當年不該使用“master”這個可能給別人造成傷害的詞語,并表示,他曾多次希望可以將“master”改成“main”(和“upstream”),不過直到現在,才由 GitHub 開始主導替換作業,
如果是全新建立的話,默認的說明里就已經改為了main,就不用擔心了,在此之前建立的還是顯示master, 如下圖:

那么如何將GitHub專案的默認分支從master遷移到main?
使用以下命令將master分支移到main:
git branch -m master main
使用以下命令將新命名的main分支推送到GitHub(假設這是您的遠程存盤庫):
git push origin main
使用以下命令將HEAD指向main:
git symbolic-ref refs / remotes / origin / HEAD refs / remotes / origin / main
現在,您需要將“main”設定為GitHub上您專案的默認分支,為此,登錄進入到您的GitHub帳戶,打開專案的存盤庫,點擊“設定” |>“分支”,在左側邊欄中,點擊“分支”,然后從下拉串列中選擇“Main”作為默認值,點擊“更新”,出現提示后,點擊“我了解”,現在,>回到終端,執行以下命令:
git push origin --delete master
這應該就可以了,
2.上傳代碼
Git本地有四個作業區域,分別是作業區,暫存區,版本區(也叫倉庫區),遠程倉庫,

git status該命令用于查看在你上次提交之后是否有對檔案進行再次修改,
你所寫的代碼都在作業區,也就是檔案夾下,
git add -A提交所有變化
git add -u提交被修改(modified)和被洗掉(deleted)檔案,不包括新檔案(new)
git add .提交新檔案(new)和被修改(modified)檔案,不包括被洗掉(deleted)檔案
執行上述命令后,代碼進入暫存區,
git commit -m ‘注釋’將暫存區內容添加到本地倉庫(版本區)
git push origin mian將本地版本庫推送到遠程服務器

代碼提交流程:
- git status 查看作業區代碼相對于暫存區的差別
- git add . 將當前目錄下修改的所有代碼從作業區添加到暫存區 . 代表當前目錄
- git commit -m ‘注釋’ 將快取區內容添加到本地倉庫
- git pull origin main先將遠程倉庫main中的資訊同步到本地倉庫main中
- git push origin mian 將本地版本庫推送到遠程服務器,
- origin是遠程主機,main表示是遠程服務器上的main分支和本地分支重名的簡寫,分支名是可以修改的,
3.下載別人的代碼
第一種就是在GitHub官網下載,

第二種是利用SHH,在你的Bash里面輸入:
git clone git@github.com:FdogMain/FdogMusicPlayer.git
即可下載,友情提示:http比ssh慢一點~~~
4.如何查看歷史版本
比如我現在對代碼分別進行了兩次更新,我要發送至遠程倉庫,commit 分別是第二次提交和第三次提交,那么我如何查看我的歷史版本呢?
git log查看歷史版本
git log -x查看最新的x個版本資訊
git log -x filename查看某個檔案filename最新的x個版本資訊(需要進入該檔案所在目錄)
git log --pretty=oneline查看歷史所有版本資訊,只包含版本號和記錄描述

5.如何滾回歷史版本
git reset --hard HEAD^回滾到上個版本
git reset --hard HEAD^~2回滾到前兩個版本
git reset --hard xxx(版本號或版本號前幾位)回滾到指定版本號,如果是版本號前幾位,git會自動尋找匹配的版本號
git reset --hard xxx(版本號或版本號前幾位) filename回滾某個檔案到指定版本號(需要進入該檔案所在目錄)

再次使用git log命令查看時,第三次提交已經沒有了,
6.回退到歷史版本如何再滾回去
git log -g查看之前操作的commit資訊

找到你需要滾回的版本之后,按q退出,然后使用下面的命令滾回到你想滾回的版本,
git reset --hard 46f3ecbdfd18153d3b575c768f84c5d8d16c764c后面的一串是commitID,
7.如何查看自己的代碼量
1.統計個人新增/洗掉代碼量
git log --author="_Your_Name_Here_" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -
2.統計所有人新增/洗掉代碼量
git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done
3.某時間段代碼統計
git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --since ==2019-2-12 --until=2019-2-15 --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done
4.統計整個專案代碼量
git log --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -
五.分支詳解
分支的作用對于團隊的作用太大了,當多人進行一個專案的開發,開發程序中,不可避免的要進行多人協作,當A,B兩人被安排了不同的任務,在不同的分支上進行開發,互相之間不會影響,當A,B兩人的任務完成后,測驗無誤,再合并到主分支中,一般情況下,開發都不會直接在主分支mian(以前是matser)上進行,都會創建一個新的分支,主分支的代碼通常都是穩定的,可以直接發布或者被fork,
1.使用新分支
查看當前分支
git branch
創建新分支
git branch XX
切換分支
git checkout XX

然后我們在新的分支下更新一下我們的代碼,將我們的G1分支代碼上傳至遠程倉庫,

中間出了一個小插曲,使用git push 命令,提示:
fatal: The current branch G1 has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin G1
翻譯過來是:
致命:當前分支G1沒有上游分支,
若要推送當前分支并將遠程設定為上游,請使用
git branch --set-upstream origin G1
出現上述問題,說明遠程并沒有感知到本地新建的這個分支,如果提示執行 git branch --set-upstream origin G1 命令后本地與遠程的關聯要是仍舊沒有建立成功,則再次執行 git push -u origin G1 即可成功建立本地與遠程的關聯,
接著我們打開Github,點擊分支,

我們可以看到剛才我們創建的分支G1,并且我們更新的代碼也只在G1,主分支mian是存在的,

剛好想到,上面使用過的git log 命令,它可以用來查看當前分支的提交,但是有一個弊端,它只能查看與當前分支有關的提交,如果你現在處于G1,那么你只能查看到在G1分支下的提交,如何查看全部分支下的提交呢?使用git log --graph --all即可,
2.合并新分支
點擊New pull request(新的拉取請求)

在新的頁面提交,顯示從G1合并到main,綠色對勾代表可以合并,沒有沖突,并且下面會顯示分支中添加的內容,

在我們的拉取請求中可以看到剛才我們的請求,

點擊 分支中添加代碼

翻譯過來

我們可以查看該分支內容并確定是否同意合并該分支,一種就是直接點擊按鈕,另一種就是使用命令列,
這是我自己合并自己的代碼,如果你想要在別人的專案中提交分支,需要先fork別人的專案,然后會創建一個同名的專案,相當于分支,在這個分支你可以任意修改,然后按上面的方法進行,
大家可以點擊點擊這里,來體驗以上程序,這是我建的一個倉庫,也可以直接在搜索欄搜fdogtest進行體驗,
六.常用命令

CSDN認證博客專家
Qt
C
C++
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/236546.html
標籤:其他
上一篇:南京林業大學試卷(B)
