2021年8月13日开始,GitHub在使用Git操作远程仓库时不再支持使用用户名密码形式进行身份验证,需使用个人访问令牌。
以下教程使用用户名密码验证身份时密码需要输入token个人令牌,而不再使用用户密码进行身份验证。
一、首先登录GitHub官网创建一个仓库。
创建了一个名为test的仓库
二、在本地创建一个项目文件夹test(名字随意)
2.1、进入test文件夹初始化本地仓库。
git init
2.2、test文件夹下创建一个java文件
2.3、执行git add . 将文件添加进入缓存区, .表示当前文件夹下所有文件
git add .
2.4、执行git commit -m "描述",可以不添加任何描述,及双引号内为空,必须有双引号
执行不成功,需要设置用户名及邮箱,可以设置全局也可以在单个本地仓库中设置
2.5、在test文件夹下的.git文件夹下更改config文件。
[user]
name=你的用户名
email=你的邮箱
或者通过命令修改git config user.name "用户名",git config user.email "邮箱",全局设置需要加上--global
git config user.name "xx"
git config user.email "[email protected]"
2.6、重新执行git commit -m "第一次提交"
2.7、添加远程仓库源git remote add origin 仓库地址,可在初始化本地仓库后执行。
git remote add origin https://github.com/xxxx/test.git //你的仓库地址
查看config文件已自动添加仓库源
2.8、执行git push origin master将本地仓库代码推送至远程仓库。
git push origin master
命令执行后需要输入GitHub账号及密码。
2.9、代码推送至远程GitHub仓库已成功。
三、模拟多人员协作提交代码至GitHub仓库。
3.1、再次创建一个项目文件夹test1,进入执行初始化本地仓库git init命令
3.2、创建一个bb.java文件,执行git add .及git commit -m "第二次提交"
同样还需要为本地仓库设置用户名及邮箱
3.3、执行git remote add origin 仓库地址,设置远程仓库地址
3.4、执行git push origin master将代码推送至远程仓库。
大概意思就是:更新被拒绝,因为有其他仓库向远程仓库推送了更新代码,导致远程仓库与本地仓库文件不一致,需要在push代码之前首先pull代码到本地。
3.5、执行git pull origin master。
refusing to merge unrelated histories:拒绝合并无关的历史。
强制合并:git pull origin master --allow-unrelated-histories
git pull origin master --allow-unrelated-histories
执行前:
执行后:
3.6、再次执行git push origin master
git push origin master
四、修改文件再次推送更新。
4.1、向aa.java文件加入代码
public class aa{
public static void main(String args[]){
System.out.println();
}
}
4.2、将代码添加到缓存区提交并推送更新。
此前空文件aa.java已更新
五、本地创建远程仓库,共享局域网可访问。
5.1、在虚拟机1中创建一个文件夹local,通过git init --bare初始化仓库
git init --bare
5.2、将local文件夹设置为共享,权限为Everyone。
右键文件夹--属性--共享--高级共享--勾选共享此文件夹--权限--Everyone--勾选完全控制
5.2.1、共享设置
5.2.2
5.2.3
5.2.4、安全设置
这一步若不在安全里添加Everyone用户及其权限,则5.2.5和5.2.6设置完成后可以通过IP访问到共享文件夹,但是打开文件夹提示没有访问权限,如下图:
5.2.5、家庭或工作组设置
5.2.6、公用网络设置
5.3、通过\\ip\共享文件夹名称可访问
本次共享文件夹在虚拟机1中win7下设置分享,IP地址为:192.168.5.103,文件名为:local
物理机IP地址为:192.168.5.100
在物理机中通过\\192.168.5.103\local访问虚拟机中共享文件夹
共享成功。
5.4、在物理机中创建文件夹local-1作为本地仓库
5.4.1、git init初始化本地仓库
git init
5.4.2、git remote add [name] [url]添加远程仓库地址,name可随意取名
git remote add origin //192.168.5.103/local
5.4.3、
git config user.name设置用户名
git config user.email设置邮箱
git config user.name "jj"
git config user.email "[email protected]"
5.4.4、进入到local-1文件夹下创建一个文件a.java,push到远程仓库。
5.4.5、local-1文件夹下git add .将该文件夹下所有更改添加到缓存区。
git add .
5.4.6、local-1文件夹下git commit -m "描述信息"
git commit -m "提交到本地仓库"
5.4.7、local-1文件夹下git push origin master
git push origin master
5.5、在虚拟机2中创建local-2文件夹模拟协作人员本地仓库。
5.5.1、local-2文件夹下git init初始化本地仓库
git init
5.5.2、local-2文件夹下git remote add [name] [url]添加远程仓库源地址
git remote add origin //192.168.5.103/local
5.5.3、local-2文件夹下git pull origin master从远程仓库master分支pull代码到本地
git pull origin master
此时pull下来的文件是空文件,向文件中添加进一段代码后再次push到远程仓库。
5.5.4、将a.java里添加代码
public class a{
public static void main(String args[]){
System.out.println("hello a!");
}
}
5.5.5、将代码更新至远程仓库
git config user.name
git config user.email
git add .
git commit -m "描述"
git push origin master
5.5.6、在物理机中local-1下再次从远程仓库local中pull代码至本地。
git pull origin master
此时物理机从远程仓库中pull到物理机的文件大小已改变,本地搭建远程代码仓库成功。