美文网首页
与git撕逼的那些事儿

与git撕逼的那些事儿

作者: biubiu15 | 来源:发表于2017-03-14 17:53 被阅读0次

刚开始用git把项目上传到码云,几乎每一天都要去百度.痛定思痛,决定留下自己记录下来.

1.在码云上建立项目
2.把要上传的文件创建仓库

cd到要上传的文件中,用$ git init命令将文件变成仓库

3.提交文件

首先添加所有文件$ git add .
提交$ git commit -m "备注内容"

4.和远程仓库进行关联

git remote add origin后面加上远程仓库链接地址
$ git remote add origin git@gitXXX.git

5.文件push到远程仓库

$ git push -u origin master

正常就这以上5个步骤...
但是!!! 往往会出现不正常的情况...
例如...
如果在码云上创建项目时一起创建了README.md,当你提交是可能会遇到下面这种情况

To git.oschina.net:XXX.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'git@git.oschina.net:XXX.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

出现以上原因是因为创建的README.md文件不在本地目录中,可通过$ git pull --rebase origin master命令合并,这时再$ git push -u origin master就会完成了

2017.5.5更新

---公司使用GitLab,不懂举一反三的小白又来反思总结了---

已有远程仓库,如何克隆使用

先前是有本地库再进行关联远程库,如今是已有远程库,如何克隆到本地. 命令行十分简单(仓库地址在GitHub上可以拷贝)
$ git clone 仓库地址

这里还有一个小坑,输入命令行之后不一定会下载成功,也可能会出现以下情况

BiuBiudeMacBook-Pro:git biubiu$ git clone git@gitlab.xxx.git
Cloning into 'xxx'...
ssh: connect to host gitlab.xx port xx: Connection refused
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

把仓库地址换成https就好,GitHub或者Gitlab上面都有切换按钮的.

切换分支

想了解分支是什么的同学,请前往廖老师的网站

http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001375840038939c291467cc7c747b1810aab2fb8863508000

直奔主题,先贴命令行
查看分支 $ git branch -r
切换分支 (切换成功的展示)

$ git checkout 分支名称
Branch xxx set up to track remote branch xxx from origin.
Switched to a new branch 'xxx'

既然说到切换成功, 那就必然会有切换不成功的时候,下面来说说我遇到的切换不成功的情况,这是一个对新手来说非常无语的问题

BiuBiudeMacBook-Pro:git biubiu$ git branch -r
fatal: Not a git repository (or any of the parent directories): .git

我在桌面用git文件来装所有在远程仓库clone下来的文件.然后我想切换分支的时候,并么有进入到远程仓库的文件下面. 例如, clone了一个文件叫doc, doc是在git文件下的. 如果要切换分支, 就需要先cd到doc里面, 才能执行$ git branch -r或者$ git checkout 分支名称命令...多长点心吧...

关于ssh那点破事儿

在解决分支切换问题的时候, 有同事友情提醒让我看看是不是ssh的问题, 懵逼了5分钟的我, 觉得有必要给脑残的自己留下点记录, 方便下次脑残的时候能查看...真的是脑残了...

这里直接讲生成和配置.

ssh-keygen -t rsa -b 4096 -C "注册gitlab的邮箱" 
git config --global user.name "gitlab的用户名"
git config --global user.email "注册gitlab的邮箱"

完成以上命令行之后, 会生成一个文件夹.ssh。进入文件夹需要退到根目录,然后cd 进去。该文件是个隐藏文件,还是cd进去吧。。。文件夹里会有三个文件,打开id_rsa.pub文件,里面的内容是需要的

BiuBiudeMacBook-Pro:~ biubiu$ cd .ssh
BiuBiudeMacBook-Pro:.ssh biubiu$ ls
id_rsa      id_rsa.pub  known_hosts
BiuBiudeMacBook-Pro:.ssh biubiu$ cat id_rsa.pub
ssh-rsa 这里会生成一大段内容,就是你需要是公钥

到此不要关闭命令行对话框,打开gitlab,把刚才生成的公钥贴上去,注意需要的是ssh-rsa之后的内容,ssh-rsa之后的所有内容

设置.jpg 添加公钥.jpg 粘贴公钥.jpg

(这绝对不是结局,所以未完待续...)

相关文章

网友评论

      本文标题:与git撕逼的那些事儿

      本文链接:https://www.haomeiwen.com/subject/ooihnttx.html