什么是git?git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。git是一种工具,它能更好的让我们管理代码。很多时候如果我们需要保持本地代码和github代码版本一致,那么我们就会用到git这个工具。git工具不仅可以让我们克隆别人的或者自己的远程代码,还可以实现本次存储远程仓库。
参考:https://blog.csdn.net/qq_36761831/article/details/88725670
git本地仓库关联远程仓库的两种方式: https://blog.csdn.net/debug_zhang/article/details/52215577
目录
(3)输入标题名称,然后将复制的key值粘贴到key处即可。
4:添加需要上传到github的文件到本地仓库,git add
6:创建远程仓库:在github上创建自己的Repository
1、报类似error: failed to push some refs to ......的错误
2、fatal: could not create work tree dir ‘xxxx’: Permission denied
3、fatal: remote origin already exists.
4、 The authenticity of host 'github.com ' can't be established(无法建立主机“github.com”的真实性)
5、! [remote rejected] master -> master (pre-receive hook declined)
0:准备工作:生成SSH key并且查看、复制key
(1)生成SSH key
打开Git-Bash,输入以下命令,然后一直回车和按【y】即可:
ssh-keygen -t rsa -C "GitHub/GitLab注册的邮箱账号"
(2)查看、复制key
执行完会在~/下生成.ssh文件夹,并且在该文件夹下生成 .pub文件,打开该文件,复制里面的 key。
选择账户,然后选择下拉列表框中的【Settings】,然后选择【SSH and GPG keys】,然后选择【New SSH key】
(3)输入标题名称,然后将复制的key值粘贴到key处即可。
Gitlab
GitHub
(4)测试连接
1、通过SSH方式测试
使用该方法测试连接可能会遇到连接超时、端口占用的情况,原因是因为DNS配置及其解析的问题,若成功建议采用HTTPS方式测试连接
ssh -T git@github.com
2、通过HTTPS方式测试
登录github,选择仓库,然后选择【Clone or download】将仓库改为用【Use HTTPS】即可
git clone 仓库https地址
1:初始化本地仓库:建立git仓库
新建一个本地仓库,其实也就是新建一个文件夹。最简单的创建方式就是直接在桌面鼠标右键,新建文件夹(test),然后进去该文件夹。鼠标右键打开git -> Git Bash Here -> git init。执行命令后目录下创建一个.git文件夹。
2:将本地仓库关联到远程仓库上
git remote add origin git@github com:leiphp/awesome-python3-webapp.git
3:拉取码云创建的仓库中的ReadMe文件
在remote add后不要着急git add,一定要git pull origin master
git pull origin master
或
git pull --rebase origin master 本地生成ReadMe文件
4:添加需要上传到github的文件到本地仓库,git add
首先将需要上传的代码复制粘贴到本地仓库,也就是git init 的这个文件夹(与远程同名)。
执行git status,这时候会发现多了一些东西,这些东西就是刚刚复制进来的文件,显示为红色,就是待添加到本地仓库的意思,如下所示:
# 将仓库下所有文件夹添加
git add .
git add --all
# 具体文件夹/文件
git add 文件夹名称/文件名称
然后再次git status 查看状态,可以发现文件变成了绿色,这时候文件就已经添加到本地仓库了。
5:将add的文件commit到仓库
git commit -m “修改说明”
-m后面添加的是对本次操作的说明,加入你修改了代码或者重新上传了什么东西都做个简单说明,别人看了就知道是怎么回事了,例如:git commit -m "第一次提交"。
6:创建远程仓库:在github上创建自己的Repository
有远程仓库了跳过这一步骤
点击Create repository,一步一步执行下去即可,创建成功后拿到创建的仓库的https地址
gitlab新仓库的创建 https://blog.csdn.net/zahuopuboss/article/details/51484929
7:上传代码到github远程仓库
中间可能会让你输入Username和Password,只要输入github的账号和密码就行了。
git push -u origin master # master为分支名
# 第一次加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令为:
git push origin master
执行完后,如果没有异常,等待执行完就上传成功了。
7:可能遇到的问题:
1、报类似error: failed to push some refs to ......的错误
那是因为本地代码目录缺失README.md文件。
1.1 我们只需要先执行命令进行代码合并【注:pull=fetch+merge]。即回到上述第三步
git pull --rebase origin master
执行成功后,发现文件夹里已经把github之前的代码克隆下来了
1.2 强制上传覆盖远程文件
git push -f origin master
或
git push --force origin master
(这个命令在团队开发的时候最好不要用,否则可能会有生命危险)
2、fatal: could not create work tree dir ‘xxxx’: Permission denied
git clone --recursive git://github.com/isaacs/npm.git
在执行上面命令从git上clone的时候报了错误,报这个错误的原因就是正在写入或者克隆git仓库的目录没有写入的权限。
fatal: could not create work tree dir 'npm': Permission denied
解决办法就是先修改目录的权限然后在进行操作
$ cd ../ (回退到当前目录的上一级)
$ sudo chmod o+w dirname (dirname为当前目录的名字)
如果有密码的可能会提醒你输入密码,然后就可以重新执行git clone命令了
3、fatal: remote origin already exists.
1、先输入 git remote rm origin
2、再输入 git remote add origin**************
4、 The authenticity of host 'github.com ' can't be established(无法建立主机“github.com”的真实性)
git remote add origin******
The authenticity of host 'github.com ' can't be established(无法建立主机“github.com”的真实性)
这是由于你的git地址采用了ssh方式,切换为https方式即可,也可能是你的仓库地址不对,可以用命令先查看一下:
git remote -v
如果跟你的github地址不一样,那就去你的github上复制一下仓库地址
然后在终端中输入:
git remote set-url origin https://github.com/yourname/learngit.git (这个是你的复制的仓库地址)
最后再push下就可以了!
git push origin master
5、! [remote rejected] master -> master (pre-receive hook declined)
git push不上去的原因在于所push的分支权限为protected,只有项目的管理员或者项目的管理员指派的具有相应权限的人才能进行push,要进行项目的push
有如下3种方法:
5.1 先确定新建的Repository有分支。如果没有分支,也会报此错误,导致没法push。
5.2 修改GitLab上的设置权限
- 设置Protected branches,Developers can push
- 添加 Members 并设置权限为 Developer 或者 Master
5.3 将所要push的内容所在的分支的protected权限关闭
(1)进入所在项目的settings
(2)点击进入Protected branches,点击unprotected将master分支的权限改变,即关闭master的protected权限