1、GitHub介紹
????????GitHub是一個開源的代碼托管平臺,使用GitHub可以查看別人的項目、可以建立靜態(tài)網(wǎng)頁、可以管理插件、可以在線編譯、可以托管代碼等等。
1.1、GitHub使用方法
- 注冊用戶,網(wǎng)址:https://github.com/
- 配置sh-key
- 創(chuàng)建項目
- 克隆項目到本地
- 推送新代碼到github
2、GitHub注冊與登錄
????????國內(nèi)訪問Github可能會有些慢,或者可以使用一些加速器,也可以使用國內(nèi)的平臺Gitee(碼云)【https://gitee.com/】它的操作與Github一樣,只是部分功能需要付費才能解鎖。
2.1、登錄官網(wǎng),注冊用戶
2.1.1、點擊“登錄”??
2.1.2、點擊“創(chuàng)建一個帳戶 ”
2.1.3、按照提示完成注冊
2.1.4、輸入啟動代碼
?2.1.5、接下來按提示選擇相應的需求,完成注冊
3、遠程倉庫
假設1:假設你準備開發(fā)一個新功能,但是需要兩周才能完成。第一周寫了50%,但是在第二周你的電腦粉碎了,并且還沒有將上周工作代碼存儲到其他物理介質上,這樣存在丟失的巨大風險
假設2:假設你是一個非常努力的程序員,除了在公司寫代碼外你還經(jīng)常把代碼用U盤拷貝回家繼續(xù)工作,如果在通勤過程中U盤不小心丟了,回家之后你就不能工作了
3.1、配置GitHub
3.1.1、創(chuàng)建SSH Key
[root@git_server ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:2VVZL4n7BLovmp5NEzWWmFT40on4O76d032XaMGBztE root@git_server
The key's randomart image is:
+---[RSA 2048]----+
| .o. .o.|
| ..o +...|
| .o+@.o .|
| .ooB+E . |
| S.*.+ o |
| .= = |
| +. .+..|
| =++.+..+|
| .=o++=. o|
+----[SHA256]-----+
[root@git_server ~]# cd .ssh/
[root@git_server .ssh]# ls
authorized_keys id_rsa id_rsa.pub # .ssh/id_rsa:私鑰;.ssh/id_res.pub:公鑰
[root@git_server .ssh]# cat id_rsa.pub
3.1.2、添加公有秘鑰到GitHub,點擊右上角“圖像”,再點擊“設置”
3.1.3、添加公有秘鑰到github
3.1.4、測試秘鑰是否有效
[root@git_server .ssh]# ssh git@github.com
PTY allocation request failed on channel 0
Hi jiangying99! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.
3.2、創(chuàng)建遠程倉庫
3.2.1、返回首頁,點擊“創(chuàng)建存儲庫”??
3.2.2、關聯(lián)本地倉庫和遠程倉庫
-
在本地倉庫中執(zhí)行命令:
git remote add origin 遠程倉庫地址
[root@git_server project]# git remote add origin git@github.com:jiangying99/gittest.git
?3.2.3、將本地倉庫的內(nèi)容推送到遠程倉庫
[root@git_server project]# git push -u origin master
To git@github.com:jiangying99/gittest.git
! [rejected] master -> master (fetch first)
error: 無法推送一些引用到 'git@github.com:jiangying99/gittest.git'
提示:更新被拒絕,因為遠程版本庫包含您本地尚不存在的提交。這通常是因為另外
提示:一個版本庫已推送了相同的引用。再次推送前,您可能需要先合并遠程變更
提示:(如 'git pull')。
提示:詳見 'git push --help' 中的 'Note about fast-forwards' 小節(jié)。
3.2.4、獲取遠程更新
[root@git_server project]# git fetch origin
warning: no common commits
remote: Enumerating objects: 6, done.
remote: Counting objects: 100% (6/6), done.
remote: Compressing objects: 100% (2/2), done.
Unpacking objects: 100% (6/6), done.
remote: Total 6 (delta 0), reused 3 (delta 0), pack-reused 0
來自 github.com:jiangying99/gittest
* [新分支] main -> origin/main
* [新分支] master -> origin/master
?3.2.5、將更新的內(nèi)容合并到本地
[root@git_server project]# git merge origin/master
[root@git_server project]# touch c
[root@git_server project]# git add .
[root@git_server project]# git commit -m "touch c"
[master c622adf] touch c
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 c
[root@git_server project]# git push -u origin master
Counting objects: 4, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 257 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@github.com:jiangying99/gittest.git
2d498a3..c622adf master -> master
分支 master 設置為跟蹤來自 origin 的遠程分支 master。
3.2.5、在遠程倉庫查看數(shù)據(jù)
- 刪除本地倉庫與遠程倉庫的關聯(lián),在本地倉庫中執(zhí)行命令:git remote rm origin
- 推送本地倉庫內(nèi)容到遠程倉庫命令:git push origin 分支
- 注意:關聯(lián)后第一次推到遠程庫前需要先拉取內(nèi)容,否則報錯
- 拉取遠程倉庫內(nèi)容到本地倉庫命令:git pull origin 分支
- 存在本地庫與遠程庫不一致情況:git pull origin 分支 --allow-unrelated-histories
- 克隆遠程倉庫到本地電腦形成本地倉庫格式:git clone 遠程庫地址
????????示例:git clone git@github.com:gongjunhe/gittest.git
3.3、.gitignore文件
作用:忽略特殊文件。當工程中有些文件已經(jīng)確定基本不會改變,所以不用每次推送時都推送,git在推送時會忽略.gitignore文件中列舉的內(nèi)容,可以提升推送效率
注意:文件名必須叫做.gitignore,.gitignore和.git文件夾是同一目錄;一定要push之前創(chuàng)建.gitignore文件,push之后創(chuàng)建.gitignore不用被git使用,因為git已經(jīng)開始了版本控制。
文件內(nèi)容說明:#開頭的行為注釋,不生效
支持正則表達(簡化的):可以以(/)開頭防止遞歸,最后有斜杠(/)的代表要忽略的是目錄,加感嘆號(!)表示取反
3.3.1、支持的正則表達規(guī)范
*:零個或多個字符
[]:匹配括號中的任意字符
?:匹配一字符
[n-m]:匹配一個范圍內(nèi)的字符,[abc] 匹配 任何一個列在方括號中的字符 (這個例子要么匹配一個 a,要么匹配一個 b,要么匹配一個 c)
[^n-m] 不要匹配一個范圍內(nèi)的字符
**:表示匹配任意中間目錄,比如 a/**/z 可以 匹配 a/z 、 a/b/z 或 a/b/c/z 等。
例如:
a/:忽略任何目錄下名為a的目錄
/a.txt:只忽略當前目錄下的a.txt,不忽略其它目錄下的a.txt
*.exe:忽略所有以.exe結尾的文件
!/a/a.jpg:不忽略a目錄下的a.jpg文件
a/*.txt:忽略a目錄下的以.txt結尾的文件,但不忽略其子目錄下包含的以.txt結尾的文件
文章來源:http://www.zghlxwxcb.cn/news/detail-429763.html
*.[ao]: 忽略.a或.o結尾的文件
文章來源地址http://www.zghlxwxcb.cn/news/detail-429763.html
到了這里,關于代碼管理平臺—GitHub的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!