一 基础知识(如何上传本地代码到git)
1、进入官网,登录自己的GitHub账号
官网地址为:GitHub: Where the world builds software · GitHub
2、在左上角的repositories地方有个NEW按钮,可以新建仓库.
3、按需求设定完以后点击Creat Repository按钮创建仓库
4、创建成功后,点击clone and download按钮,把这个地址复制下来
5、在要上传的文件夹下打开Git Bash
6、输入命令(git clone + ”仓库的地址”)
7、然后在你打开git bash的文件夹下,就会多出一个和你github新建的仓库名字相同的文件夹
8、然后把你要上传的文件复制到这个文件夹下,同时在git bash上通过命令(cd + 仓库名)进入到本地仓库文件夹
9、然后在git bash输入命令(git add .),add和点之间有个空格
10、然后输入命令(git commit -m "这个仓库的说明信息")注:这一步会提示你配置”邮箱”和”用户名“,按提示配置就行
11、然后通过命令(git push -u origin master)把本地文件上传到github的仓库。注:这里会让你登录用户名和密码,按提示登录。
引用:怎样上传本地项目到GitHub仓库 - 闪——灵 - 博客园
二 git分支
为什么要使用分支: 因为master是保持最稳定代码的版本,如果我每实现一个小的功能,就进行一次commit的话,你会看见服务器上有很多不必要的提交,这样子就不简洁了,版本历史也不清楚。但是使用分支,完成一个完整的功能,然后主分支使用 git merge 合并分支,做一个完整的提交,那么服务器上的提交历史就简洁了,同时审查过每个分支上的代码再合并,而不是立刻将分支上的代码合并到master上面,保证了代码的质量,在小组方面可以更快发现bug然后通知修改。
查看所有分支(包括远程分支):进入到master后执行 git branch -a
查看本地已有的分支:git branch
切换到指定分支:git checkout 分支名(切换到指定分支后提交代码就会提交到分支库中而不是默认的master)
分支合并:
git checkout master (切换到主分支)
git merge 分支名(需要合并冲突的代码)
删除分支:git branch -d 分支名
误删分支恢复:
git log --pretty=oneline(查询操作日志,以得到提交号)
git branch 分支名称 提交号(创建一个历史版本的分支,分支名随意)
git checkout master //首先切到master分支
git pull //同步下master
git branch -a //查看所有本地查库分支
gitlib合并分支
三 使用IDEA切换git分支
新建分支后,Update Project,然后在界面右下角就会多出新建的分支,选中该分支后,点击checkout后即可切换成功
四:git信息配置
配置git用户名和邮箱
git config --global user.name "testUser"
git config --global user.email "testUser@gmail.com"
查看git配置信息
git config -l
五:使用SSH方式clone代码
1.使用HTTP和SSH方式获取代码有什么区别?
- HTTPS:不管是谁,拿到url随便clone,但是在push的时候需要验证用户名和密码,即git clone + ”仓库的地址”
- SSH:clone的项目你必须是拥有者或者管理员,而且需要在clone前添加SSH Key。SSH 在push的时候,是不需要输入用户名的,如果配置SSH key的时候设置了密码,则需要输入密码的,否则直接是不需要输入密码的
2.使用ssh方式操作步骤
查看本地是否有ssh密钥,如果有则会跳转到对应ssh目录,如果没有会提示没有这样的目录
cd ~/.ssh
创建一个ssh密钥
ssh-keygen -t rsa -C "邮箱"
最后会在目录下生成两个个文件
然后我们登录到github
在settings下找到SSH And GPG keys =》 new SSH key
然后输入随便的Title,再把创建的id_rsa.pub文件内 内容复制粘贴到Key文本框中Add即可
五:Fork
假设远程源仓库为A,自己fork后的远程仓库为B,自己本地的代码仓库为C
如果我们想要修改他人github项目A的话,我们直接git clone代码到本地是不能pull的,所以我们使用fork,先把代码复制到自己的github仓库即B,然后git clone到本地即C修改,然后在提交pull(这里的pull是pull到自己github仓库了,我们自己的github仓库中的代码是fork源的一个分支),这时候我们想要把修改的代码提交给他人的话,就可以在自己github上pull,等其他人看到后就可以把代码做一个合并
引用 git clone和fork的区别_ghv587的博客-优快云博客
fork:在github页面,点击fork按钮。将别人的仓库复制一份到自己的仓库。
clone:将github中的仓库克隆到自己本地电脑中
六、使用IDEA把已经写好的代码提交到指定Git
提交的前提是你必须有gitlab的地址
以下是将本地代码提交到gitlab上
在idea的菜单项选择 VCS》Import into Version Control》Create Git Repository
出现Select directory for git init对话框,默认是直接定位到当前项目文件所在的磁盘目录,一般git初始化就在当前项目的根目录,不需要修改路径,直接点击OK确定即可
-
init完成之后,可以看到原本的项目文件名变成了红色了,红色在idea的git版本表示未add的文件,同时在系统资源管理中打开项目的磁盘文件目录,会发现一个.git的隐藏文件,这个文件就git的配置和仓库文件
在回到idea项目中,点击VCS》Git》Add添加当前项目下的文件,添加完成之后,之前的红色文件名变成了绿色了,表示已经Add成功,但还没有commit继续操作,VCS》Git》Commit File,然后在提交创建填写提交注释说明
提交完成之后,只是提交到本地仓库,这个时候还没有同步到远程的gitlab服务上,需要push操作,VCS》Git》Push
然后通过网页的方式登录gitlab服务,创建一个空的project,然后在如图所示的位置复制仓库地址,然后把这个地址填写到刚刚push的时候弹出的对话框中
远程地址填写完成之后,就表示本地仓库与远程的gitlab服务关联上了,现在可以push代码到远程gitlab上了,push完成之后会提示push successful
七、修改文件名大小写造成的git提交失败
git 对 文件名大小写不敏感,所以当你只修改文件名大小写的时候,实际上会出现修改不生效的情况
解决方法:
》复制此文件到其他地方备份,修改文件名称
》删除项目中的此文件
》提交代码
》重新添加此文件到项目中
》提交代码,搞定!
八、gitlib合并分支时源分支被删除:这是因为合并时默认勾选了删除源分支