Github是一个代码仓库托管平台
Git:分布式的版本控制系统
只支持 Git 作为唯一的版本库格式进行托管,故名 GitHub。
为一个项目贡献代码非常简单:首先点击项目站点的Fork的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的pull request机制向项目负责人申请代码合并。
在 Git 中并不存在主库这样的概念,每一份复制出的库都可以独立使用,任何两个库之间的不一致之处都可以进行合并。
1.push与pull命令:
push:把我推给你
git push origin main
pull:把你拉过来
git pull origin main
2.什么是pull request?
对于原作者来说,我们都是远程仓库,需要原作者pull我们,才可以把我们的代码合并到原始项目中
对git的操作是围绕3个大的步骤来展开:
-
从远程取数据(git clone)
-
对代码进行修改
-
将本地改动传回远程(git push)【保持一致】
两个repository:
remote repository,在远程服务器上【remote server/remote repository/remote branch】
local repository,自己工作区即本机【local repository/local branch】
3.理解origin 和 main
在clone完成之后,Git 会自动为你将此远程仓库命名为origin,并下载其中所有的数据,建立一个指向它的main 分支的指针
(远程仓库名)/(分支名) origin/main指向的是一个remote branch(从那个branch我们clone数据到本地),但你无法在本地更改remote branch的数据。
同时,Git 会建立一个属于你自己的本地main 分支,它指向的是你刚刚从remote server传到你本地的副本。git push之前,对所有文件的改动都是在你自己本地的local repository来做的,
你的改动(local branch)和remote branch是独立(并行)的
master就是local branch,origin/master是remote branch
git push origin master
origin指定了你要push到哪个远程仓库
”+:”,
冒号前表示local branch的名字,即master
冒号后表示remote repository下 branch的名字,省略即push到remote repository下和local branch相同名字的branch
4.基础使用
我们得到先进入到(我们定义的)Git 仓库的最顶层文件目录下,然后从此目录中进入 Git Bash,这样之后的操作才能顺利进行
git init ;初始一个 Git 仓库 初始化后缀名为.git
git status ;查看仓库的状态
git add hit.txt
git status
;add命令并没有把文件提交到 Git 仓库,而是把文件添加到了「临时缓冲区」,这个命令有效防止了我们错误提commit提交的可能性。
git commit -m “text commit” ;将hit.txt文件提交到 Git 仓库
;其中commit表示提交,-m表示提交信息,提交信息写在双引号””内
git status
git log ;打印 Git 仓库提交日志
git branch ;查看 Git 仓库的分支情况 *号表示当前所在的分支
git branch a ;创建了一个名为a的分支
git checkout a ;切换到a分支
git checkout -b fileb ;在创建分支的同时,直接切换到新分支
切换到master分支,然后输入(无冲突)
git merge a ;将a分支合并到master分支
git branch -d a ;删除a分支
git branch -D a ;强制删除a分支
git tag v1.0 ;为当前分支添加标签
git tag ;查看标签记录
git checkout v1.0 ;切换到该标签下的代码状态
5.利用 SSH 完成 Git 与 GitHub 的绑定
本地 Git 与远程 GitHub 的绑定 = 可以通过 Git 向 GitHub 提交代码
SSH(安全外壳协议)
大多数 Git 服务器也会选择使用 SSH 公钥来进行授权
在 GitHub 上添加 SSH key配置)
密钥和公钥生成之后,我们要做的事情就是把公钥id_rsa.pub的内容添加到 GitHub,这样我们本地的密钥id_rsa和 GitHub 上的公钥id_rsa.pub才可以进行匹配