一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第22天,点击查看活动详情。
四、Github
1. 注册 Github 账号
略~
2. 多人协作开发流程
- A 在自己的计算机中创建本地仓库
- A 在 GitHub 中创建远程仓库
- A 将本地仓库推送到远程仓库
- B 克隆远程仓库到本地进行开发
- B 将本地仓库开发内容推送到远程仓库
- A 将远程仓库中的最新内容拉去本地
3. 创建远程仓库
4. 推送到远程仓库
-
git push 远程仓库地址 分支名称
-
git push 远程仓库地址别名 分支名称
-
git push -u 远程仓库地址别名 分支名称
-u
记住推送地址和分支,下次只需要输入git push
-
git remote add 远程仓库地址别名 远程仓库地址
-
删除别名:
git remote remove 远程仓库地址别名
-
第一次提交需要用户名和密码,电脑会记住密码在凭据管理器,第二次就不用了。
本地仓库上的操作
- 查看本地仓库关联的远程仓库:
git remote
;在克隆完每个远程仓库后,远程仓库默认为origin
;加上-v
的参数后,会显示远程仓库的url
地址; - 添加远程仓库,一般会取一个简短的别名:
git remote add [remote-name] [url]
,比如:git remote add example git://github.com/example/example.git
; - 从远程仓库中抓取本地仓库中没有的更新:
git fetch [remote-name]
,如git fetch origin
;使用 fetch 只是将远端数据拉到本地仓库,并不自动合并到当前工作分支,只能人工合并。如果设置了某个分支关联到远程仓库的某个分支的话,可以使用git pull
来拉去远程分支的数据,然后将远端分支自动合并到本地仓库中的当前分支; - 将本地仓库某分支推送到远程仓库上:
git push [remote-name] [branch-name]
,如git push origin master
;如果想将本地分支推送到远程仓库的不同名分支:git push :
,如git push origin serverfix:awesomebranch
;如果想删除远程分支:git push [romote-name] :
,如git push origin :serverfix
。这里省略了本地分支,也就相当于将空白内容推送给远程分支,就等于删掉了远程分支。 - 查看远程仓库的详细信息:
git remote show origin
; - 修改某个远程仓库在本地的简称:
git remote rename [old-name] [new-name]
,如git remote rename origin org
; - 移除远程仓库:
git remote rm [remote-name]
;
- 查看本地仓库关联的远程仓库:
5. 拉取仓库
5.1 克隆仓库
- 克隆远程仓库到本地:
git clone 仓库地址
5.2 拉取远程仓库中最新版本
- 拉取远程仓库最新版本到本地:
git pull 远程仓库地址 分支名称
6解决冲突
多人开发同一个项目时,如果两个人修改了同一个文件同一个地方
git pull
- 手动解决冲突
git push
7. 跨团队协作
fork
到自己的远程仓库clone
到本地进行修改push
到远程仓库pull request
发送给原作者- 原作者查看
commit
审核 - 原作者
merge pull request
8. SSH 免密登录
-
生成密钥:
ssh-keygen
密匙储存目录:
C:\User\用户\.ssh
公钥名称:
id_rsa.pub
私钥名称:
id_rsa
-
Github 添加公钥
-
复制 SSH 地址:
-
设置 ssh 别名:
$ git remote add origin_ssh SSH地址
-
远程推送:
$ git push origin_ssh master
9. Git 忽略清单
将不需要的文件名字添加到此文件中,执行 git 命令时就会忽略这些文件。
-
git 忽略清单文件名称:
.gitignore
-
将工作目录所有文件添加到缓存区:
git add .
-
例子:
# 此为注释 – 将被 Git 忽略 # 忽略所有 .a 结尾的文件 *.a # 但 lib.a 除外 !lib.a # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO /TODO # 忽略 build/ 目录下的所有文件 build/ # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt doc/*.txt # 忽略 doc/ 目录下所有扩展名为 txt 的文件 doc/**/*.txt
10. 为仓库添加说明
在仓库根目录添加readme.md
文件即可
五、在Idea 中使用Git
1. 插件推荐:Gitee 码云
我们可以在 idea 中安装一个插件 Gitee 码云,然后在里面进行账号的登录,这样我们就可以省略代码和账户的认证操作了。
settings ===> version control ===> gitee ===>填写登录信息
2. 配置Git
安装好IntelliJ IDEA后,如果Git安装在默认路径下,那么idea会自动找到git的位置,如果更改了Git的安装位置则需要手动配置下Git的路径。选择File→Settings打开设置窗口,找到 Version Control 下的 git 选项:
点击右侧的 Test 按钮,下面出现 Git 的版本号的话,就说明配置成功了
3. 在Idea 中操作 Git
场景:本地已经有一个项目,但是并不是git项目,我们需要将这个放到码云的仓库里,和其他开发人员继续一起协作开发
3.1 创建项目的远程仓库
具体步骤见上面我们创建仓库的目录
注意:由于我们是要将本地仓库给推动到远程仓库,所以创建仓库的时候下面的选项:比如说:初始化仓库,设置模板,选择分支类型等,这些我们都不要进行选择。
3.2 初始化本地仓库
首先,我们打开一个我们本地的项目,由于 Idea 项目会自动生成一个 .idea 文件目录,这个目录的话,我们就不需要仓库对其进行管理了,所以这一我们一般的话导入 .gitignore 文件,来忽略对这里的文件的管理。
在 Idea 中我们选择 Git 中的 VCS operations
然后选择 Create Git Repository ,选择我们要进行使用的本地的项目的目录就阔以了
初始化为仓库之后,上面就会有一些符号,比如说对号和箭头之类的,具体的作用如下
我们是先提交到本地仓库,然后再将本地仓库给 push 到远程仓库
我们点击 对号 进行提交的时候,idea 会相对弱化我们的缓存区,我们直接全选,然后下面输入对应的 commit message (bash 命令行窗口里面执行提交的时候我们使用 双引号所引着的提示信息-版本日志信息,这个信息我们在 idea 下面的Version Control (或者 git )---> log 栏目里面就可以看到,点击对应的提示信息,右侧还会显示,我们在这次提交的时候都是提交了什么内容。)
- 将本地的仓库 push 到远程仓库
导航栏 Git --> Manage Rometes ---> 弹出窗口左下角的加号 ---> 输入名称和我们远程仓库所对应的 SSH 链接就可以了。
- 远程仓库的克隆
导航栏 Git ---> clone ---> 输入我们仓库的 ssh 链接就可以了(后面的目录我们也可以更改)
- 解决冲突
和我们之前解决冲突的方式一样:在本地的话,一般都是先执行 pull ,然后在进行 push , 在执行 pull 的时候在本地就把冲突给解决掉,然后在进行提交,对于那种,我们提交的功能都是所需要的是时候,我们可以直接把文件中提示冲突的内容直接给删除掉,直接改成我们想要的代码,然后进行 pull 加上 push 就可以了。(对于我们修改的文件,我们可能需要先对其进行一下 add 操作!!!)
3.3 分支创建
idea 的分支创建有好多种方式,比如说
- 右下角的 master 处,点击之后我们可以看到我们本地和远程的分支,在相应的内容部分右键可以进行很多种操作:新建分支,checkout , merge等等操作(可以自行查看一下一下)
- 但是我们一般才有,在 log 界面里面的指定节点处进行右键新建分支(优点:可以指定我们新建分支的节点;可以清楚地看到分支的结构)
3.4 几条铁令
-
切换分支前先提交本地的修改,如果未提交就直接切换分支的话,我们所做的代码修改将不会进行保存
-
代码及时提交,提交过了就不会丢
-
遇到任何问题都不要删除文件目录,第1时间找老师
4. 代码的团队内合作
- 进入网站的库的首页
- 点击设置 settings
- 左栏 Manage access
- Invite a collaborator -------> 邀请一个合作伙伴
- 输入对方的 账号,然后在主页会显示一个邀请函()后面也会有一个地址
- 对方访问对应的邀请函的地址的时候,就会看到邀请界面,接受邀请之后,在对方的账号上面也就可以看到主人的仓库的代码了
- 对方就可以直接进行代码的更改和 push 了
5. 代码实现跨团队合作
- 被人搜索到你的代码,然后点击 fork 插入到我们自己的代码仓库里面
- 对其进行修改(修改之后 commit ,只是我们这边显示更改了,但是代码的主人那并没有发生更改,我们可以发送 pull request ,填写部分信息发送请求)
- 在代码主人的主页部分的 pull request部分就会接收到请求,然后可以查看修改的代码信息,包括后面的发送和回复信息(直接聊天--聊天内容,上面会自动更新)
- 如果主人感觉代码还是可以的,代码原主人那里就可以就是接收更改了,点击 merge pull request ,之后两端的代码就都被更新了