局域网环境
GitLab服务器
外网环境下
GitHub、码云
介绍
Github支持两种同步方式"https"和"ssh":
如果使用https很简单基本不需要配置就可以使用,但是每次提交代码和下载代码时都需要输入用户名和密码。
如果使用ssh方式就需要客户端先生成一个密钥对,即一个公钥一个私钥。然后还需要把公钥放到github的服务器上。
注册GitHub账号
在github、码云等代码仓库网站上注册一个帐号,这里用github的帐号
登录GitHub网站
https://github.com/login
创建新项目(远程仓库)
填写项目信息
复制Git项目地址
桌面右键选择克隆(类似于SVN检出)
填写复制仓库URL
在克隆完成项目路径下新建文件提交主分支
填写日志信息提交
推送最新版本
必须推送后GitHub上才会出现最新版本
输入GitHub账户密码
GitHub上检测项目是否更新
Windows下打开Git Bash创建SSH Key
# 生成公钥和秘钥 ssh-keygen -t rsa # 或 ssh-keygen -t rsa -C "注册邮箱"执行命令完成后,在window本地用户.ssh目录 C:\Users\用户名.ssh 下面公钥和私钥
id_rsa # 秘钥 id_rsa.pub # 公钥配置公钥
在github上配置公钥本地才可以顺利访问,复制id_rsa.pub里的内容
测试ssh key是否成功
# 测试ssh key ssh -T git@github.com # 如果出现You’ve successfully authenticated, but GitHub does not provide shell access 。这就表示已成功连上github使用GitBash
在仓库所在的目录点击右键选择"Git Bash Here",启动git bash程序
# 在GitBash中执行命令 # CharlesKai替换成个人用户名 git remote add origin git@github.com:CharlesKai/nbsp.git git push -u origin master # 如果出现以下错误:remote origin already exists,须先执行以下命令 git remote rm origin使用TortoiseGit同步
由于TortoiseGit使用的ssh工具是"PuTTY",git Bash使用的ssh工具是"openSSH" 如果想让TortoiseGit也使用刚才生成的密钥可以做如下配置
ssh客户端配置成git使用的客户端
配置Git远端信息
# URL 远程仓库地址 git@github.com:CharlesKai/nbsp.git # 推送URL 同 远程仓库地址 git@github.com:CharlesKai/nbsp.git # Putty密钥 选择生成的密钥中私钥同步远程仓库代码
其他
如果之前使用的是https协议,现在想换成ssh协议,只需要使用命令 git remote set-url url来调整你的url,或者重新增加一个远程仓库地址
# 查看你当前的 remote url git remote -v ## git开头则表示是ssh协议 # 调整当前远程仓库的url git remote set-url # 或重新增加一个远超仓库地址 git remote add origin_ssh git@github.com:CharlesKai/nbsp.git介绍
克隆远程仓库也就是从远程把仓库复制一份到本地,克隆后会创建一个新的本地仓库。
使用GitBash
git clone git@github.com:CharlesKai/nbsp.git使用TortoiseGit
在任意目录点击右键
克隆失败报错:git did not exit cleanly (exit code 128)
问题阐述:使用GitBash命令行,采用ssh方式克隆成功;但使用TortoiseGit克隆远程代码,采用ssh方式却失败,查找网上资料,说两者使用工具不同,网上大多数是要求使用TortoiseGit自带的PuTTYgen工具重新生成putty格式的公钥和私钥。但我考虑复用同一公钥,把TortoiseGit的客户端换成git安装目录下的ssh.exe,但是还是不行。使用TortoiseGit复用GitBash命令生成公钥和秘钥克隆远程代码。
解决方案:先使用GitBash命令行克隆代码到本地,在右击项目settings -> Git(Remote) 在putty key中加载(之前通过PuTTYgen工具load已用GitBash生成的密钥保存转换为).ppk格式的密钥
参考链接:
https://blog.csdn.net/m0_37727560/article/details/79408251
https://blog.csdn.net/zhangbinu/article/details/52270559
介绍
Git中从远程的分支获取最新版本到本地有2个命令
# 是从远程获取最新版本到本地,不会自动merge(合并代码) git fetch # 从远程获取最新版本并merge到本地,等同于git fetch + git merge git pull实际开发中,使用git fetch更安全一些,因为在merge前,可以查看更新情况,然后再决定是否合并
使用TortoiseGit
遗留问题:冲突代码未发现可以比对地方,且使用Fetch后无任何反应,后期更新,如有大佬知道原因,麻烦指点一二。
问题原因:应将代码先提交到本地仓库,再推送到远程仓库,此时会提示推送失败,要求Pull后再解决冲突。
解决方案:将修改的文件提交到本地仓库,尝试将本地代码再Push到远程仓库失败,于是使用Pull拉取远程仓库代码,本地文件显示有冲突(黄色!号)
编辑冲突内容,重新提交到远程仓库Git常见下标符号说明
https://blog.csdn.net/zhangxingyu126/article/details/79169694
Windows10下TortoiseGit和Git配置使用同一SSH密钥
https://blog.csdn.net/qq_32786873/article/details/81480414