Git的使用详解

Git

Git中央服务器实现的两种方式

1、公司内部搭建git服务器
2、使用在线版本控制系统----GitHub、码云、gitlab

Git常用命令

  1. git clone -b 分支名称 git仓库地址 —克隆分支到本地,-b 为分支,分支名称,分支名称后面跟主分支地址
  2. git add 文件名称 ------添加某个文件到提交包里
  3. git commit –m “提交信息” ------提交并填写提交信息
  4. git push ------推送提交的到远程仓库
  5. git status ------查看当前所在分支状态
  6. git reset –hard HEAD~ —返回上一版本
  7. git reset --hard 版本号 —返回指定版本
  8. git log —查看提交日志,可看到提交ID,根据ID返回到提交这一版本
  9. git reset 提交ID —git log最上面的提交ID返回到没有提交信息的状态
  10. q —在查看不可编辑的文档时,可用q退出
  11. insert键 —粘贴键 选中即是复制
  12. git merge –abort —取消合并分支
    注意事项:填写提交信息时,进入编辑状态和退出时输入法都必须是英文状态下,否则编辑状态i和退出编辑状态shift + i后wq,shift + i无效;

克隆到本地

有两种方式

  1. 通过HTTPS方式,此种方式直接复制需要克隆的地址即可
  2. 通过ssh方式,这种方式比较安全,会对内容进项加密,也是比较慢的

Git生成秘钥的步骤

  1. 生成.ssh文件:mkdir ~/.ssh
  2. 进入.ssh文件:cd ~/.ssh
  3. 再执行ssh-keygen -t rsa -C “你的邮箱地址” *****重点ssh和-keygen中间没有空格,如果有空格会报Bad escape character ‘ygen’
  4. 一路回车即可,生成的秘钥和公钥一般在c:/users/Administrator/.ssh/
  5. 用eclipse编辑器打开id_rsa_pub文件并复制里面的所有内容粘贴到你的仓库添加ssh公钥下的公钥的输入框中,公钥标题输入什么都可以。
  6. 通过ssh这种方式的克隆代码只能供命令行git clone ssh路径来克隆代码,不能通过tortoiseGit克隆,否则会报错。
  7. Windows7和Windows10测试是否连接成功时报Hi limaomao! You’ve successfully authenticated, but GITEE.COM does not provide shell access.也表示连接成功。

TortoiseGit

克隆分支

右击选中Git Clone
在这里插入图片描述

如果不选中,克隆的即是master分支

创建分支

  1. 进入本地主分支后点击右键选择TortoiseGit,选择Create Branch…,在Branch框中填写新分支的名称(若选中在option选项”switch to new branch”则直接转到新分支上,省去第二步),点击OK按钮
    在这里插入图片描述
  2. 通过“Switch/Checkout”切换到新创建的分支上,点击OK:
  3. 在新分支下执行PUSH操作,在对话框中保持远程分支为空白,点击OK,则将在远程创建了新的分支(在PUSH的时候远程服务器发现远程没有该分支,此时会自动创建一个和本地分支名称一样的分支,并将本地分支的内容上传到该分支)

合并分支

  1. 点击右键选择TortoiseGit,选择Switch/CheckOut切换到要合并到的分支,

  2. 然后通过“Merge”继进行合并操作,在对话框中选择需要合并的分支。
    选择需要合并的分支选择本地的即可,没有remotes前缀的是本地的
    在这里插入图片描述

  3. 分支合并成功后,我们即可以通过Commit或直接PUSH操作将合并上传到中心服务器。
    举例 A分支合并到master分支,则先切换到master分支,然后merger,进入merge界面,选择A分支,点击合并,合并完后,push主分支master即可

回滚版本

右击TortoiseGit,选择Show log

  1. 在这里插入图片描述
    在这里插入图片描述
    1、 保持工作树和索引不变
    2、保留工作树不变,索引重置
    3、重置索引树和索引,
    此种方式只能修改本地的,不能提交到远程仓库,提交会提示过期,通过pull拉取远程后会覆盖本地的回滚。
  2. 在这里插入图片描述
    回滚到此版本并创建分支,通过push可推送远程仓库
  3. 在这里插入图片描述
    导出此版本的zip包,zip包中没有git文件
  4. 在这里插入图片描述
    此种可以修改本地文件并且可以提交到远程,
    但是唯一的问题是同一个文件的回滚只能回滚到此文件的上一个版本,如果直接回滚到上一版本的之前版本会冲突,
    此种回滚回滚的是回滚所在版本的文件回滚,如果有些文件不是在回滚版本的文件提交的则不会回滚,如版本1对文件1修改了提交远程,版本2对文件2修改了并提交到远程,如果回滚到版本1,则不会对文件2进行回滚。

可能遇到的问题

windows中git输错密码后不能重新输入的问题

控制面板----》用户账户—》编辑—》管理你的凭据----》如果你的git里保存有用户名和密码,在下图里就会有保存,然后删掉就可以重新输入了

解决分支冲突

当你和别人修改了同一个文件时,再次pull的时候就会有冲突,此时文件会有黄色三角感叹号,需要合并同事的文件和自己的文件,然后tortoiseGit-resoulve再次提交即可;

  1. git pull
    更新代码,发现
    error: Your local changes to the following files would be overwritten by merge:pom.xml
    Please commit your changes or stash them before you merge.
    这说明你的pom.xml与远程有冲突,你需要先提交本地的修改然后更新。
  2. git add pom.xml
    git commit -m ‘冲突解决’
    提交本地的pom.xml文件,不进行推送远程
  3. git pull
    更新代码
    Auto-merging pom.xml
    CONFLICT (content): Merge conflict in pom.xml
    Automatic merge failed; fix conflicts and then commit the result.
    更新后你的本地分支上会出现 (develop|MERGING)类似这种标志
  4. 找到你本地的pom.xml文件,并打开
    你会在文件中发现
<<<<<<< HEAD=======>>>>>>> ae9a0f6b7e42fda2ce9b14a21a7a03cfc5344d61
这种标记,<<<<<<< HEAD=======中间的是你自己的代码,  =======>>>>>>>中间的是其他人修改的代码
自己确定保留那一部分代码,最后删除<<<<<<< HEAD=======>>>>>>>

这种标志

  1. git add pom.xml
    git commit -m ‘冲突解决结束’ 再次将本地的pom.xml文件提交
  2. git push 将解决冲突后的文件推送到远程

推送失败的可能原因

  1. 没有权限报You are not allowed to push code to protected branches on this p
    roject.
  2. 有冲突,要先更新后或者解决冲突后在推送
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值