小白书—Git

小白都看得懂,Git在实际开发中的使用
(转载请标注)

先介绍下概念

Git称为代码版本管理仓库,可以记录你整个项目从无到有的各个阶段,实际开发中完成测试版开发后,经常会有某个功能或者模块需要修改逻辑(一般看客户心情)。由于代码之间存在着各种联系,你改动的代码就可能会影响原来的整个项目,报错啥的。
有代码仓库的好处就是今天你改的东西,即使是明天报错了,你依然可以回退到改动之前。而且Git日志中可以查看改动的内容,很好的帮助我们找出bug
把代码比作钞票,银行就是大仓库,存钱进去都有各种记录,比揣在兜里更安全

1.安装

  • git官方版本(基础版)

    • windown 32bit git下载地址
    • windows 64bit git下载地址
    • 打开小黑窗终端 git --version 查看版本,有则说明安装成功
    • 这时候你的鼠标右键菜单会多出一个Git Bash Here 选项,打开它,通过输入git init命令可以在任意文件下创建仓库,这个仓库可以管理同级文件。文件夹名为.git的就是仓库,他是一个隐藏文件,如图1
      图1
      图1
  • 说实话基础版用命令操作非常不适合新手,安装成功后可以直接在VS Code上使用很方便,左侧面板有个源代码管理就是。快捷键ctrl+shift+G,如图2

图二

  • 另外有个叫小乌龟的工具挺好用的,带汉化包,附上
    微云链接:https://share.weiyun.com/mMDBCtAH 密码:cc6k79
    不想了解原理的同学可以直接跳到标题5小乌龟的使用
2.开始进入正题,如何使用

官方的git - 简明指南链接在这

这张图就是整个Git工作的架构,我解释下各个关键词的含义,这些关键词对应图2中的VSCode的选项
请添加图片描述

  • workspace是工作目录,如果把代码比作钞票,他就是是现在拿在手里的,准备花掉或者存起来

  • index是暂存区,是你揣兜里的钞票,暂时不花,在工作目录中运行Git Bash Here窗口,通过git add 文件名命令暂存某个文件,git add -A暂存当前目录所有文件。注意:只有被add添加了的文件才受仓库管控。git克隆下来的代码都受管控。如图3图3
    文件带这种小标识的被管控了,红标识表示未保存到仓库
    VSCode上点暂存如下图点这个+号就可以了
    在这里插入图片描述

  • Repository是本地仓库,是你放在家里的钞票,暂存之后的文件通过git commit -m 文字说明命令提交到本地仓库

  • Remote是远端,提交到本地仓库的代码通过git push命令推送到远端,也就是把钱存到银行,现在你就可以在其他电脑上拿到你远端的代码了,使用git clone 仓库链接克隆代码,克隆的时候是最新的代码,但是过几天代码更新了,你想要拿到最新的代码只需使用git pull拉取更新即可
    小型项目平常用的其实就这几个操作,我查看日志用的小乌龟或者gitk命令,下面的内容是拓展

3.git命令拓展
git clone url #克隆url路径的代码

git init #初始化仓库

git add . #添加当前所有到暂存区

git commit -m "备注" #提交暂存区的内容

git branch name #创建名为name的分支(delete -> -d)

git checkout 分支 #切换分支(build -> -b)

# 从远端拉取最新的代码,当你合并分支的时候,可能其他同事又提交了新的内容,所以最好先拉取一次最新的代码
git pull origin next
#git fetch		# 不自动合并(当同一远端分支由多人控制时)

# 合并(如果合并发现有冲突,可以使用可视化工具查看冲突的代码,如:pycharm、BCompare4
git merge next-dev

# 将本地代码推送到远程
git push origin next:next	# ”:“前面的是本地分支的名字,”:"后面的是远程分支的名字,同名可省略一个

#先pull再push
#在你开发过程中,你的同事可能也在改代码然后他提交了没通知你,你直接git push很容易造成代码冲突
`git log` #可以查看提交历史

`git show` #当前位置

`git reflog` #记录你的每一次命令 ,可回退

`git rm 文件名 ` #移出版本库

`git status` #查看所有文件状态(提交与否...)


HEAD是什么

Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交 , 上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

熟练的情况下可以通过改变HEAD指针来实现版本控制,检查BUG,暂不深入

commit id : 节点唯一ID,可以checkout改变HEAD切换到某个id去查BUG(分离态,不熟练不建议)

git reset --hard commit_id     #重置到指定commit id
  • 可视化查看树状图

    • bash命令面板显示git树git log --graph --decorate --oneline --all
    • bash命令显示日志窗口gitk
    • git reflog 显示所有的操作,误删误操作救命神器
  • 远程仓库生成密钥

    • 在C/用户/username下写个.ssh
    • bash命令ssh-keygen -t rsa
    • pub公钥,rsa私钥,把公钥内容放到gitee个人设置里面
4.关于多分支(大型项目)
  1. 项目开始,从主分支创建拉取自己的分支 / (fork到自己仓库)
  2. 克隆远端代码到本地,作为本地主分支
  3. 开发过后,代码保存到本地主分支上
  4. 多人项目在推送到远端之前一定要pull拉取更新一下代码
  5. 如果出现两个人同时改了同一处代码,这时就需要解决冲突,VSCode的源代码管理点开冲突文件,会有标记出冲突的地方,附带相应的选项,问你保留哪一块代码,鼠标选择就行了
  6. 推送代码之后给主分支人员 / (fork源)发送pullRequest请求

5.小乌龟的使用

小乌龟右键功能
仓库链接

小乌龟安装好后会自动添加到鼠标右键菜单TortoiseGit中
小乌龟日常使用:
1.在设置中,添加一个远端地址,填上仓库URL即可。远端用gitee或GitHub可以创建仓库,拿到空仓库的HTTPS链接(如上图)
2.版本库可以自己右键创建,但是好多项目框架会自动创建的,比如Vue
3.选择想管控的文件,右键,TortoiseGit添加
4.提交管控文件到本地
5.推送本地管控文件到远端
6.拉取(获取相当于更新)
  • 合并或者报错时右键看报错文件的日志,比较修改前后差异
  • 解决冲突:远端有master和dev分支。现在我想把dev合并到master上,但是在同一个地方,两者都有修改,这就需要你做出选择;可以通过gitee的pullRequest,采用WEB IDE解决冲突,当WEB IDE解决不了,就需要把master和dev都拉取到本地,在master上吞并,提示冲突后,右键调出GIT解决冲突。我更加推荐在VS Code 内解决
  • 还原:在日志里面找到想要的版本可以右键还原到该版本,或者git log 命令找到想要的版本id(推荐使用上面的可视化命令找)
  • 切换/检出:比较重要的是切换到remote/origin/分支 ,可以直接拉取远端对应分支的新代码,解决冲突时用
  • 合并:吞并

4.Git Bash Here 是基于Linux类型的命令

linux基础

1 )、ls(ll):都是列出当前目录中的所有文件,只不过ll列出的内容更为详细。

1 )、pwd:当前路径。

2 ) 、touch :新建一个文件如touch index.js 就会在当前目录下新建一个index.js文件。

3 ) .rm:删除一个文件, rm index.js就会把index.js文件删除。

4 ) 、mkdir:新建一个目录,就是新建一个文件夹。

5 ) 、rm -r:删除一个文件夹, rm -r src删除src目录

6 ) 、mv移动文件, mv index.html src index.html是我们要移动的文件, src是目标文件夹,当然,这样写,要两个文件夹在同一目录下。

7 ) .reset重新初始化终端/清屏。

8 ) .clear清屏。

9 ).history查看命令历史。

10 ).exit退出。

11 )#表示注释
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值