第一章:Git对GitHub的相关操作
1.1 创建远程仓库
点击New repository 
点击来创建仓库 
1.2 远程仓库的操作
命令名称 | 作用 |
---|
git remote -v | 查看当前所有远程地址别名 | git remote add 别名 远程地址 | 起别名 | git push 别名 分支 | 推送本地分支上的内容到远程仓库 | git clone 远程地址 | 将远程仓库的内容克隆到本地 | git pull 远程库地址别名 远程分支名 | 将远程仓库对于分支最新内容拉下来后与当前本地分支直接合并 |
1.2.1 给远程地址设置别名
语法:
git remote add 别名 远程地址
点击HTTPS,复制此远程库地址。 
给此远程库地址设置别名: 建议:这个别名与仓库名相同。
下面是测试: 
1.2.2 查看当前所有远程地址别名
语法:
git remote -v 查看当前所有远程地址别名
下面是测试: 
1.2.3 推送本地分支到远程仓库
语法:
git push 别名 分支
下面是测试:  此时发现将我们的master分支上的内容推送到GitHub创建的远程仓库 
1.2.4 拉取远程库的内容
语法:
git pull 远程库地址别名 远程分支名
先修改一下GitHub远程仓库的文件内容,修改完后点击Propose changes  开始拉取远程库的内容  查看拉取下来的文件的内容 
1.2.5 克隆
语法:
git clone 远程地址
下面是测试: 
克隆结果如下: 
下面查看远程库的别名,它是自动创建的别名。  克隆时会做下面这些操作: ①:拉取代码 ②:初始化本地仓库 ③:自动创建别名
1.2.6 团队内协作
1.2.6.1 准备工作
此时需要两个GitHub账号。我就记为A与B。A账号就是将本地库推送到GitHub用的账号,而B账户就是一会需要用来加入A账号创建的仓库。这里A和B两个账号有两个工作目录。
在B的工作目录下修改的内容 
将文件添加到暂存区,并且提交本地库。 
此时在GitHub上登录B账号,并且推送本地库,此时发现会报此错误。 
1.2.6.2 邀请他人加入
出现此错误的原因就是此时B账号没有加入到A账号仓库当中。接下来就需要登录A账号,在相应的仓库内要求B账号加入。 
点击后会弹出下列窗口,然后输入你要邀请的账号,完成后点击绿色方框就好了。因此这里我们输入B账号的邮箱。 
之后会看到这个页面,此时我们需要等待邀请的人同意就好了。 
接下来我们登录B账号,点击接受同意。 
按照下图继续操作。 
点击Accept invitation就成功加入了。 
1.2.6.3 开始推送本地库(克隆的文件)

在GitHub仓库上看推送的内容  
此时我们在A账号的工作目录下拉取仓库内容 
在A的工作目录下查看拉取下来的内容 
1.2.7 跨团队协作
将远程仓库的地址复制发送给团队外的人,给他命名为C。  账号C将发过来的链接复制到地址栏中,然后点击Fork。 
按照下面的步骤来操作。  点击后C账号开始修改内容。修改完后点击提交 
C账号提交请求。  然后在点击创建提交请求 
写要提交的相关信息  登录GitHub的A账号,点击第二个红框,查看 C账号提交的请求。 
点击后跳转到下述页面进行相应的操作。 注意:点击了合并请求后,还需要再点一次确定合并。  Write下面的框是双方可以进行交流。
1.2.8 SSH免密登录
我们可以看到远程仓库中有一个SSH地址,也可以通过SSH访问GitHub仓库。  具体操作: ①:删除C盘中本地用户的.ssh文件。
我的本地用户是Administrator,可能你们使用的是其他的用户名,这都是一样的操作。 
删除.ssh文件 
在git中生成 .ssh 密钥的目录。
语法:注意: 这里要看好空格,要不然会报错。
ssh-keygen -t rsa -C 邮箱

我们到之前删除.ssh文件夹中看到,生成一个新的.ssh文件。  我们可以在这打开 id_ras.pub文件查看公钥并且将公钥复制。
打开A账号的GitHub进行下述操作 
此时创建 SSH key。 
添加 SSH Key 
添加成功后出现这界面。 
在A账号的工作目录下查看本地的文件内容,发现此时本地文件夹并未发现GitHub中修改的内容。 
去A账号的仓库中复制SSH的链接。 
在A账号的本地工作目录下拉取GitHub仓库中的代码 — 使用SSH协议拉取 
再次查看hello.txt文件 
然后在A账号的本地目录下修改hello.txt文件,提交本地库。 
将A账号本地的工作目录推送到GitHub仓库中。 
再次打开A或B任意一人的GitHub仓库,查看hello.txt文件,发现本地库推送成功! 
第二章: idea中使用Git
2.1 配置Git的忽略文件
配置忽略文件的作用:屏蔽编译工具之间的差异。例如:Idea和Ecplise工具。
创建忽略规则文件 xxx.ignore(前缀名随便起,但因为是Git,我们一般起 git.ignore)
这个配置文件是复制尚硅谷的。
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see
http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
.classpath
.project
.settings
target
.idea
*.iml
上面的配置文件存放在用户的目录下,是为了便于在.gitconfig 文件中引用此配置文件。 
在 .gitconfig 文件中引用配置文件
[user]
name = 当时初始化git时用的名字
email = 当时初始化git时用的邮箱
[credential "helperselector"]
selected = manager-core
[core]
excludesfile = C:/Users/Administrator/git.ignore
注意:在引用配置文件时要使用 “正斜线( / )”,不用使用 “反斜线( \ )”。
2.2 在Idea中配置Git
点击Settings。  配置Git的路径。选择好 git.exe 文件后,进行测试,若出现 Git 的版本号,则配置成功。 
2.3 在Idea中初始化本地库
创建 Git Repository。 
然后选择好自己的工作目录之后,会发现文件变红,意思就是 git检测到文件存在,但是未追踪到文件(未添加到暂存区)。 
将文件添加到暂存区。  变绿也就意味着 git 将文件添加到了暂存区中。 
新建文件时,会出现提示,我们按照下图中的红色的字来选择。这里我们选择取消。
 编写新建的 .java文件。 
编写完文件后将整个 git 的工作目录都添加到暂存区。添加成功后,会发现整个目录都变成了绿色。  点击Commit Directory。  选择好暂存区的文件后点提交。 此时提交本地库  提交完成后发现这块目录恢复为正常的颜色。 
2.4 在Idea中切换版本
修改完之前创建的 .java 文件,我们会发现TestGit文件变蓝,意思是我们追踪文件的途中修改了文件。 
然后将此文件提交到暂存区。 
修改完名字后点击提交。 
提交后,我们发现工作目录恢复正常颜色。
此时我们可以按照下面步骤来切换版本。这里就切换回第二个版本。 
这里看到我们第一个版本的代码了。 
2.5 在Idea中切换Git的分支
2.5.1 第一种方法
通过在包名找到创建Git的分支。  
2.5.2 第二种方法
简便方法,直接点Idea的右下角即可。 

2.5.3 正式创建分支
点击 New Branch。 
填入相关信息,完成后点击Create。  切换分支。 
若右下角是你想要切换到的分支名字,则表示切换成功。 
2.5.4 合并分支
修改hot-fix分支上的内容,并且提交到暂存区。 
提交到本地库 
我们切换回到master分支上,合并 hot-fix 分支。 
点击后我们会看到master分支上的内容变化了。 
2.5.5 解决冲突
切换到hot-fix分支上修改内容,完成之后提交到暂存区 
点击提交hot-fix分支上的内容。 
切换到 mater 分支上,发现此时并没有看到修改过的内容,那么 master 上也修改内容。 
点击提交master分支上的内容。 
开始合并分支。 
会弹出下面这个框(发生冲突),然后点击Merge 
手动合并代码。这里是将左边和右边代码都合并到中间。 
合并之后的内容。  以上就是解决冲突的步骤,需要我们自己手动合并代码。
第三章:idea中通过Git操作GitHub
3.1 在Idea中设置GitHub账号
点击Settings。 
添加GitHub账号。 
3.1.1 第一种登录是通过账号密码
点击 Log In via GitHub。 
会自动帮你弹出下面界面,然后你点击 Authorize in GitHub即可。 
输入你的GitHub账号和密码。 
登录后,会弹出下面这个界面,点击 Authorize JetBrains。 
完成后 
3.1.2 第二种登录是通过Token口令
我们把上面添加的账号删除掉,给大家演示Tioken口令登录。
选择 Log In with Token。 
此时需要Token指令,那么就需要到GitHub账号中去生成。 
登录GitHub账号户,点击Settings,然后在左侧找到Developer settings。 
进行下述操作。  继续进行下述操作,完成后点击Generate Token。  点击后会生成下面的口令,复制。注意:口令只会生成一次,如果刷新页面口令也会消失,此时就需要重新创建口令。 
复制完后点击Add Account。 
完成后会发现账号添加成功。 
3.2 在Idea中将项目分享到GitHub
点击Share Project on GitHub。 
进行下述操作。

点击之后,就完成了仓库的创建。 注意: 我这里创建成功仓库,但是内容推送失败,我也不知道是啥原因导致的。 
3.3 Idea推送项目到远程库
这里有两种方式选择 Push 的位置 第一种: 
第二种: 
3.3.1 使用Https推送
默认使用的是Https推送,如果网速较慢,则可能推送不成功,建议使用SSH推送。我使用Https推送报错,呜呜呜~~~~ 
3.3.2 使用 SSH 推送
自定义一个名字。 
输入自定义名字 和 SSH 链接 
等待一会去GitHub的远程仓库查看,发现推送成功。 
注意: push 是将本地库代码推送到远程库,如果本地库代码跟远程库代码版本不一致,push 的操作是会被拒绝的。也就是说,要想 push 成功,一定要保证本地库的版本要比远程库的版本高!
3.4 Idea拉取远程库的项目
到远程仓库中修改代码。修改完后点击提交。    在Idea中开始pull。 
进行下述相关操作。 
拉取成功。  注意:pull 是拉取远端仓库代码到本地,如果远程库代码和本地库代码不一致,会自动合并,如果自动合并失败,还会涉及到手动解决冲突的问题。
3.5 Idea克隆远程库项目
点击Get from Version Control。 
完成下述操作。 
克隆下来后,我们可能会出现下面这种情况 
解决办法:在pom.xml文件上单击右键,选择Add as Maven Project。即可解决 
第四章:idea中通过Git操作Gitee
Gitee操作与GitHub的操作非常相似。个人喜欢用码云,毕竟速度快的很。
4.1 Idea安装码云插件
点击Settengs。 
点击下载Install。 
点击Log In to Gitee。 
输入码云的用户名和密码。 
登录成功。 
4.2 将项目分享到码云上
点击 Share Project on Gitee。 
完成下述操作。 
输入码云的邮箱和密码。 
分享成功。 
4.3 将项目push到码云上
修改文件内容。 
点击 Push。 
重新创建别名。 
进行下述操作 
到Gitee上去复制Https的链接。 
点击Commit File。 
点击提交 
点击Push。 
push 成功。 
4.4 Idea拉取远程库项目
修改码云中远程库的内容 
编辑远程库中的内容,完成后点击提交。 
点击Pull。 
进行下面操作。 
拉取成功。 
4.5 Idea克隆远程库项目
点击 Get from Version Control。 
完成下述操作。 
克隆成功。但是出现了问题,跟之前的解决办法一样。 
解决办法:在pom.xml文件上,单击鼠标右键 。即可解决。 
4.6 导入其他远程仓库的项目
按照下面操作。 咱这里就示范导入GitHub的项目。 
导入成功。 
注意:若其他远程库修改了代码,我们导入后就无法自动与他们进行同步更新。 采用下面步骤会帮助我们导入更新的代码。 
|