赞
踩
GitHub是一个开源的代码托管平台,使用GitHub可以查看别人的项目、可以建立静态网页、可以管理插件、可以在线编译、可以托管代码等等。
国内访问Github可能会有些慢,或者可以使用一些加速器,也可以使用国内的平台Gitee(码云)【https://gitee.com/】它的操作与Github一样,只是部分功能需要付费才能解锁。
2.1.1、点击“登录”
2.1.2、点击“创建一个帐户 ”
2.1.3、按照提示完成注册
2.1.4、输入启动代码
2.1.5、接下来按提示选择相应的需求,完成注册
假设1:假设你准备开发一个新功能,但是需要两周才能完成。第一周写了50%,但是在第二周你的电脑粉碎了,并且还没有将上周工作代码存储到其他物理介质上,这样存在丢失的巨大风险
假设2:假设你是一个非常努力的程序员,除了在公司写代码外你还经常把代码用U盘拷贝回家继续工作,如果在通勤过程中U盘不小心丢了,回家之后你就不能工作了
3.1.1、创建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
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
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.1、返回首页,点击“创建存储库”
3.2.2、关联本地仓库和远程仓库
git remote add origin 远程仓库地址
[root@git_server project]# git remote add origin git@github.com:jiangying99/gittest.git
3.2.3、将本地仓库的内容推送到远程仓库
- [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' 小节。
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、将更新的内容合并到本地
- [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、在远程仓库查看数据
- 删除本地仓库与远程仓库的关联,在本地仓库中执行命令:git remote rm origin
- 推送本地仓库内容到远程仓库命令:git push origin 分支
- 注意:关联后第一次推到远程库前需要先拉取内容,否则报错
- 拉取远程仓库内容到本地仓库命令:git pull origin 分支
- 存在本地库与远程库不一致情况:git pull origin 分支 --allow-unrelated-histories
- 克隆远程仓库到本地电脑形成本地仓库格式:git clone 远程库地址
示例:git clone git@github.com:gongjunhe/gittest.git
作用:忽略特殊文件。当工程中有些文件已经确定基本不会改变,所以不用每次推送时都推送,git在推送时会忽略.gitignore文件中列举的内容,可以提升推送效率
注意:文件名必须叫做.gitignore,.gitignore和.git文件夹是同一目录;一定要push之前创建.gitignore文件,push之后创建.gitignore不用被git使用,因为git已经开始了版本控制。
文件内容说明:#开头的行为注释,不生效
支持正则表达(简化的):可以以(/)开头防止递归,最后有斜杠(/)的代表要忽略的是目录,加感叹号(!)表示取反
*:零个或多个字符
[]:匹配括号中的任意字符
?:匹配一字符
[n-m]:匹配一个范围内的字符,[abc] 匹配 任何一个列在方括号中的字符 (这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c)
[^n-m] 不要匹配一个范围内的字符
**:表示匹配任意中间目录,比如 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结尾的文件
*.[ao]: 忽略.a或.o结尾的文件
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。