git版本管理,有这一篇就够了(后端开发人员必备技能)

目录

一、定义:

二、两大特点:

三、常用命令:

四、分支管理:

五、git 要点小记:

六、终端如何生成github上的ssh公钥,gitlab通用(在家目录下操作)

七、克隆项目

八、不小心commit后如何撤销

九、多次commit如何合并成一个commit

一、定义:

开发项目时进行代码管理时常用的一个工具。

二、两大特点:

版本控制分布式

三、常用命令:

  • git init #帮忙创建一个人版本库
  • git add code.txt #在仓库添加了code.text这个文件
  • git commit -m '版本1‘ #进行了提交
    •  #两个命令加起来才是创建了一个版本,’版本1‘是你所创建版本的一个说明信息。
  • git log #查看创建的版本记录。
    • (commit后有一串信息,它是你创建版本的序列号)
  • git reset --hard HEAD^ #版本回退,如果想回到某一个版本可使用该命令。
    • (HEAD^与HEAD~1等价,HEAD^表示当前版本的前一个版本,HEAD^^表示当前版本的前两个版本,HEAD~100表示当前版本的前100个版本,HEAD相当于一个指针)
  • git reset --hard 版本序列号 #可以回到该序列号的版本。
  • git reflog #可查看操作记录。
    • (如果把终端关了,再打开终端,看不到版本号,可使用该命令)
  • git checkout -- <文件>#丢弃工作区的改动
  •  git reset HEAD code.txt
    • #如果将文件的修改已经加到暂存区了,还想丢弃改动可使用该命令,把暂存区的修改撤销,回到工作区,再使用丢弃工作区的改动命令。(若已经提交了不合适的修改到版本库,参考版本回退。)
  • git diff HEAD -- code.txt 
    • #对比两个文件不同(输出内容中前面若无加号或减号则是两个文件都有的内容,带加号或减号的是文件所特有的,加代表工作区里的code.txt,减代表HEAD版本的code.txt)
  • git diff HEAD HEAD^ -- code.txt #对比两个版本间某个文件不同
  • rm code.txt #删除文件
    • #若想丢弃改动 git checkout -- <文件>
    • #若想在暂存区删除的文件再回来,先取消暂存,再checkout
  • git log --pretty=oneline #以简短形式显示已创建版本记录
  • git branch #查看有几个分支
  • git checkout -b dev # 创建并切换到dev分支(带*表示你所在分支的位置)
  • git checkout master #切换分支(master是你要切换到的分支名字)
  • git merge dev #合并分支
    • (将要合并的分支合并到当前分支,这种合并叫快速合并,直接把指针往前一挪)
  • git branch -d dev #删除分支
  • git branch <分支名字> #创建一个分支,不切换。
  • git log --graph --pretty=oneline #可以查看分支提交的情况(图)
  • git merge --no-ff -m '禁用 fast-foruard' dev #禁止快速合并,重新做一次新的提交
  • git stash #保存 
  • git stash list #列出保存的工作现场
  • git stash pop #恢复工作现场

四、分支管理:

        分支是什么呢?就好比工厂里的流水线一样,HEAD先指向分支,分支再指向版本,默认有一个master分支。

五、git 要点小记:

  • 每次更改后的版本只是在原版本上添加了新增的内容,新版本中只有新增内容。
  • 工作区:电脑中的目录,比如git_test,就是一个工作区,也就是你git init的那个目录。
  • .git :工作区有一个隐藏目录.git,这个是git的版本库,git 的版本库里存有很多东西,其中最重要的是stage(或叫index)的暂存区
  • 编辑文件都是在工作区,git add 是把在工作区的修改放到暂存区,git commit 是把暂存区的修改一次性做一次版本记录。
  • 起冲突:两个分支都有了新的提交记录,并且修改的是同一个文件。
  • bug分支:修复bug时,要禁止快速合并

六、终端如何生成github上的ssh公钥,gitlab通用(在家目录下操作)

 可看到被保存到的路径,所以cd到.ssh/ 下

id_rsa是私钥,id_rsa.pub是公钥,cat一下复制公钥加入github的key中,title的名字可以自己起,如“xiaoxiao",最后点击Add SSH Key,大功告成。

七、克隆项目

  • git clone 复制地址 #克隆项目
  • git push origin 分支名称 #推送分支
  • git branch --set-upstream-to=origin/smart smart #本地的smart分支跟踪远程的smater分支
  • git pull origin 分支名称 #从远程分支上拉取代码

八、不小心commit后如何撤销

git log #查看自己的commit记录
git reset --soft HEAD^ #撤销commit记录
git log #已经没有commit记录了

九、多次commit如何合并成一个commit

  • GIT有多个commit时,需要先进行git log
  • 查看历史commit记录
  • 回到要合并的commitID的上一个commitID 
    • 即复制粘贴commitID
    • git rebase -I commitID
    • 最上面的是最早提交的版本记录,所以将要合并的版本记录改为s,要合并到哪个版本的版本记录不变为pick
  • 同理,最上面的logo_upload为最早的commit -m,将要的留下,不要的commit -m与#...都删除
  • git push -f
  • 成功记录如下:
  • 综上所述,最妙的办法是杜绝这么多个commit的发生,可以使用git commit --amend

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值