这是我参与「日新计划 4 月更文挑战」的第6天,点击查看活动详情。
大家好,我叫小杜杜,在项目管理上,我们会将所有的代码放在一个版本控制的平台,一个是集中式
版本控制,一个是分布式
管理控制。两个模github是什么式的代表开源阅读分别是 svn
和git
,随着时间的推移,使用git
的公司越来越多,已经逐渐取代svn
了,所以今天就来gitlab是干什么用的讲讲常见的 git
操作,如果你对git不太熟悉,或者有相关的问题,相信这篇文章一定能够帮助你,还请大家多多支持~
什么是git
git: 是一个开源的分布式版本控制系gitlab官网统,用于敏捷高效地处理任何或小或大的项目。
工作区域的三种状态
git
的工作区域主要分为三种状态:已提交(committed)
、已暂存(stgitlab登录aged)
和已修改(modified)github官网
-
已提交
:在git上存在的代码 -
已暂存
: 代码提交到了本地,但未提交到gigithub开放私库t仓库 -
已修改
: 只对github永久回家地址拉下的代码可视化图表进行简单的修改,未提交过
如何绑定git(ssh方式)
在这里推荐使用ssh方式
,我们在git
上找到Sett可视化图表ing
在找到SSH a可视化nd GPG keys
,就是这样:
- 首先你需要绑定自己的
git
账号
$ git config --global user.name "git用户名"
$ git config --global user.email "git邮箱"
- 然后执行:
$ ssh -keygen -t rsa -C 邮箱 // 此时已经生成了key
- 查找:
$ cd ~/.ssh
$ open id_rsa
此时会弹出key的文件,复制到git
上就OK了
可视化工具
这里推荐一个可视化工具:GitHub Desktop
有的小伙伴可能Git觉得使用工具比较low,就喜欢敲命令,我在这里想说下,命令固然重要,但直可视化工具接使用可视化的工具无疑减少了大量的时间,尤github其是在合并冲突、查看commit记录上可视化管理非常方便,所以还是推荐使用这个工具(但至少git命令你要熟悉相关git教程的命令开源~~)
常见情况gitlab安装
首次提交文件gitlab到git
当我们想要开源中国将文件提交到git
上,需要先进行 git init
,然后创建README.md(描述文件),然后 git remogitlab搭建te
链接到对应的库,再 git pu可视化管理sh
即可
git init
git add REMADE.md
git add .
git commit -m 'xxx'
git remote add origin git@github.com: xxx/xxx.git
git push -u origin master
查看可视化图表分支、切换分支、gitee合并分支
-
查看分支: 通过
git branch
即可,git仓库可通过git branch -a
完成 -
合并分支: 通过
git merge 分支名(需要开源代码网站github合并的分支)
即可 -
切换分支:开源代码网站github 分两步,第一步创建分支
git branch test01
第二部切换分支git checkout test01
- 切换分支的两步可以合github永久回家地址成一步,用 git checkout -b test01 即可
- 需要注意,此时只是在本地创建了分支,还需要把分支再
git push
下
分支提交错了,版本回退
情况一:我现在有两个分支,分别是 test01 和 test02, 我要在 test02 上开发github永久回家地址,但此时的分支在test01,此时提交到了github是什么本地,并未提交到git仓库上该如何做?
情况二:还是上可视化分析述情况,只不过这时已经 commit 上了,已经同步到git仓库了,然后发现提交错了,提交成了 test01,那么现在应该如何操?
情况三:还是上述情况,但我这次提交的就是 test01,并且把开源是什么意思代码发到了测试环境,但这是又个产品跑过来,气喘github官网吁吁的告诉你,先别发,我要再看github永久回家地址看之前gitlab注册的,好github永久回家地址家伙,要回推到了之前的版可视化本,如何做?
针对上面的三种情况,实际上是两种,情况二和情况三是一种,都是已经提交到了 git 仓库,要将git仓库回退到之前的版本,而情况一则是提交到了本地,还未提交到git
我们这时就需要使用gitreset这个命令
首先,你要知道回退有两种方式:
-
HEAD
: 代表你要回退的前几步,如过你要回退上一步的操作,就是HEAD^1 (简写:HEAD^)
-
hash值
:适合回退比较靠前的版本,通开源节流常可以使用git log
查看,如:
接下来再介绍下 git reset
的三种模式
-
–mixed:不会删除本地代码,撤销
commit
操作,并且撤销git add .
这个操作 -
–soft:与
--m开源是什么意思ixed
一样,但不能撤销git add .
(至于是否撤销git add . 个人觉github直播平台永久回家得不重要) - –hard:撤销 commit 操作,并且删除所有本地改的代码,回退到制定的版本(一定要慎用,要不然估计你写的代码直接就没了,直接芭比Q~)
所以针对回gitlab是干什么用的退的建议使用 –soft 或 –mixed, 顺便做个对比:
针对情况一:只需要使用 git reset --soft HEAD^
就行
情况二和情况三:最大的问题是,我本地代码已经变了,但git仓库上的代github官网登陆入口码没变,并且还提示我再 git pull
,那么解决办法也很简单,强制push
下,所以在reset
的基开源众包础上执行:git push -f origin 分支名
即可
做完了整个需求,但只上部分需求
情况:当做一个非常大的需求时,拆分多个小需求,分别 commit,但每个功能是按照顺序依次上的,比如说今天上第一个,明天上第二个,..gitlab官网注册入口.,这时就需要将整个代码拆分,如何做?
正确的操作流程是,先把master的代码恢复到之前开源中国,然后在开发这个大需求的基础上,以次分离出GitLab代码,创建对应的分支
- 首先,先通过
log
来拿到对应的hash
值,假设:abc123 - 然后创建一个新分支,并切换到该分支,假设 test01
- 然后通过
git cherry-pick abc123
,就OK了,但注意此时可能会有冲突
把分支删了怎么办
情况一:我不小心把我本地的分支(已在git上存在)删了怎么办? 情况二:我想删Git除git仓库的分支怎么办?
针对情况一:删除本地分支:gitbranch-D分支名
删除了本地分支,但git上还存在,直接github官网登陆入口使用 git checkout 分支名(刚本github中文社区地删除的分支名)
此时会直接下载
针对情况二:删除远程分支:
gitpushorigin--delete分支名
-
gitpushorigin:分支名
(github中文官网网页简写)
注意gitlab是干什么用的:删除完git仓库的分支后,本地实际上还是存在的,只不过这时需要重新提交
提交的commit太多了,最可视化数据图表后不方便看到底改了啥
在开发中我们要常常切换gitlab安装分支,但切换分支就必须先把代码提交到本地,这样一个功能下来,本地这边就会有非常多的co开源众包mmit,同时也不好看具体改了哪些文件,要一个个找,我gitlab注册现在就想要不过提交多少个commitgithub,最后合并成git命令一个,该如何做?
熟悉的小伙伴知道,在GitLab有一个 Merge requests
的功能,会将代码合并,没错就是实现这个效果。
- 首先我们通过
git log
获取对应的哈希值,假设:abc123 - 然后通过
git reset --soft abc123
回到之前的版本 - 之后在
git commit
一次就能合并了
这里需要注意,如果已经上传了git仓库,在切回的时候,强制上传一波,消除之前的commit就行了
代码冲突了,怎么搞?
开发github开放私库的时候难免会代码冲突,这时我们该怎么办?
通过 git status
可以看到文件,也可以用更为简单的办法看到文件的状态, git status -s
之后解决就行了
当然这里建开源议直接使用: GitHub Desktop,这东西是真方便,一眼看出哪些文件有冲突,一键选择用那个分支的代码,方便你我他~
End
致此,我总结了下在工作中常用的操作,相信这篇文章足以在工作上可视化管理游刃有余了,大家有什么常见的gitgit教程操作可以在下方留言,共同进步,喜欢的点个赞支持下吧(● ̄(エ) ̄●)