目录
SSH keys配置
Git分支
Git代码拉取推送及冲突解决
查看本地代码变更及代码回退版本操作
Git其它命令补充
SSH keys配置
在Gitlab上创建了对应的项目,进入项目详情后,会生成一个git地址,用于将远程仓库的代码克隆或拉取到本地仓库,本地仓库变更代码后进行推送到远程仓库中,频繁使用建议ssh的方式配置,HTTP的方式需要每次输入gitlab的账户及密码。
首先需确认是否已使用过SSH。当SSH太久未使用,或者相应的设备终端更换,再次使用对应的Git操作时,会报错"permission denied (publickey)",按照如下两个步骤进行操作:
1.检查电脑上是否已有ssh key
# 查看ssh key是否已生成 $ ls ~/.ssh/ # 查看公钥,将对应的公钥复制在Gitlab设置处的ssh key处 $ cat ~/.ssh/id_rsa.pub
2.当不存在ssh key时,进行创建ssh key
# 命令生成Gitlab对应账户的密钥 $ ssh-keygen -t rsa -C 'gitlab的账户名' # 查看公钥,将对应的公钥复制在Gitlab设置处的ssh key处 $ cat ~/.ssh/id_rsa.pub
Git分支
常用分支:
在本地创建自己的分支,用于Gitlab上代码的拉取推送操作:
1)首次创建本地自己的分支,需加入gitlab的相关的账户:
# 加入邮箱 $ git config --global user.email "xx@xx.com" # 加入用户名 $ git config --global user.name "xxx"
2)创建本地分支的操作命令如下:
# 查看当前分支 $ git branch * master # 创建并切换分支--从master分支上复制代码到新分支hd,并切换分支为test分支 $ git checkout -b test Switched to a new branch 'test' # 查看当前的分支在test分支上 $ git branch * test master
Git代码拉取推送及冲突解决
git的基础操作三步骤:工作区---->add--->缓存区--->commit--->仓库区
在软件代码修改成功后,将代码拉取推送到Gitlab上的合并操作。推送代码之前一定要注意,代码是整个项目文件代码的路径,不是项目内某一个文件内的路径。
# 查看远程分支 $ git branch -a * test master remotes/origin/HEAD -> origin/master remotes/origin/develop remotes/origin/master # 提交变更点 $ git add . $ git commit -m 'xx变更' # 将远程的代码master分支,进行拉取合并在本地查看是否有冲突 $ git pull --rebase origin master # 合并不相关联的远程develop分支的代码到本地分支 $ git pull --allow-unrelated-histories origin develop # 解决冲突: 从Gitlab上拉取代码有冲突后,鼠标右键点击GIT=>点击鼠标右键选择(Resolve Conflicts....)==>点击merge键,进行解决冲突 # 解决冲突后进行提交变更点 $ git add . $ git rebase --continue # 追加本地变更代码提交变更点 $ git add . $ git commit -am '修改xx' # 强制推送该命令到Gitlab上--用户推送到远程分支失败后强制执行推送 $ git push origin test -f # 将本地分支推送到远程分支test中 $ git push origin test # 在Gitlab上进行请求合并分支到master上 进入到Gitlab的官网上--合并请求--new merge request--进行选择分支的合并的需求,要合并的分支(test),需要合并到什么分支(master)上--点击COMPARE BRANCHES AND CONTINUE即可 # 在Gitlab上有maintainer权限或者owner权限后,可以进行选择点击‘合并’的按钮到master分支上,点击合并的按钮进行操作合并分支到master上 # 将本地分支test推送到远程的develop分支上--不用合并 $ git push origin test:develop ### 否则报错信息如下:error: src refspec develop does not match any. error: failed to push some refs # 本地使用远程的master分支,将代码推送到远程分支上--不用合并 $ git push -u origin master
查看本地代码变更及代码回退版本操作
# 查看是否有进行安装git软件
$ git
usage: git [--version] [--help] [-C ] [-c =]
[--exec-path[=]] [--html-path] [--man-path] [--info-path]
[-p | --paginate | --no-pager] [--no-replace-objects] [--bare]
[--git-dir=] [--work-tree=] [--namespace=]
[]
# 查看文件有怎样的修改
$ git diff
# 查看已合并的代码片段
$ git log
# 将工作区和缓存区回退到指定的log中
$ git reset --hard 03efbf2e4b652e9c4b4590935ddaf09d6beb89a0
HEAD is now at 03efbf2 update model
Git其它命令补充
分支常用的命令:
和远程分支进行关联的分支也叫作跟踪分支或上游分支。这些分支的好处是,以后我们做push操作的时候,通过git push origin,就会自动的把代码提交到远程关联的分支,以后使用git pull origin 分支名称和git push origin 分支名称的时候就可以简写成git pull和git push了
#注意:做任何pull操作之前,一定要进行commit。原因是如果你和同事都修改了同一个文件,同事先提交代码到服务器。如果这时你不commit后直接pull,同事优先提交的代码会将你本地的代码进行覆盖掉,会找不回你所修改的代码
远程拉取分支:
拉取远程的分支:
后续拉取远程分支的代码建议采取:git pull --rebase origin master
git pull origin master与git pull --rebase origin master的区别:
git pull = git fetch + git merge
git pull --rebase = git fetch + git rebase
rebase好处:想要更好的提交树,使用rebase操作会更好一点。这样可以线性的看到每一次提交,并且没有增加提交节点。
1)merge 操作遇到冲突的时候,当前merge不能继续进行下去。手动修改冲突内容后,add 修改,commit 就可以了。
2)rebase 操作的话,会中断rebase,同时会提示去解决冲突。解决冲突后,将修改add后执行git rebase –continue继续操作,或者git rebase –skip忽略冲突。
删除远程分支:
当工作已经完成,代码也已合并到master分支,这时可把这个远程分支删除
本地分支及远程分支:
删除文件:
重命名文件:git mv 原文件名 新文件名
版本回退:
克隆远程仓库:git clone 仓库地址
注意:克隆的项目默认在本地会生成一个master分支,这个分支跟踪远程的origin/master分支。
查看当前项目中文件在git仓库中的状态:git status



