微信公众号:Java修炼指南
博客园:https://home.cnblogs.com/u/wuyx/
CSDN: https://mp.csdn.net/
简书:https://www.jianshu.com/
关注可与各位开发者共同探讨学习经验,以及进阶经验。如果有什么问题或建议,请在公众号留言。

之前4月份刚换公司,近期也算是比较渐渐的适应了新公司的节奏,于是乎乘着假期来写一些东西。之前出入公司时写过一篇git的使用,只是一些基本操作,于是打算再写一篇基础操作篇。我发现在开发过程中我们也许不仅仅使用git的命令行去操作与git远程仓库进行同步,可能会使用到eclipse的集成工具,或者是TortoiseGit等工具进行操作,或者是三者结合使用。

 

准备工作

新建git仓库

首先我们需要创建自己的git仓库,可以使用 github, 也可以使用码云,我在此处使用的是码云。

下载 git 命令窗口

git 命令窗口 此处为我的云盘的资源 提取码为:85dl

下载 TortoiseGit 客户端

TortoiseGit 客户端 此处为我的云盘的资源 提取码为:2nqj

在eclipse中安装git插件

  1. 点击help – Install new software – Add 在Location中输入http://download.eclipse.org/egit/updates/
  2. 将几个选项勾选,然后下一步,直到安装,重启eclipse,就安装完毕了
  3. 将自己git信息配置到eclipse中,Window – preferences

创建Git操作文件夹

这个文件夹用于学习git的操作,里面再创建三个文件夹,分别用git,eclipse,TortoiseGit来操作。

clone项目

git 命令行clone项目

  1. 首先进入到文件夹,打开git命令窗口
  2. init 初始化,将此文件夹变为git管理文件夹,并且文件夹中会出现 .git的文件夹
git init

  


3. 去码云中找到clone的路径
4. clone 项目

git clone xxx

  


5. 此时项目就被clone下来了。

eclipse Git插件clone项目

  1. 首先将eclipse的工作空间调整到刚刚创建得文件夹下面。
  2. 将项目clone进来,右键 – import – Git
  3. 选择clone URL
  4. 在此处需要输入刚刚从码云上面复制下来的地址。
  5. 选择主干 master
  6. 选择存放地址,这里选择我们刚刚创建的地址。
  7. 选择导入得文件夹
  8. 这里导入项目,下面报错了,为什么报错呢?因为在此处项目文件夹中其实是没有java项目存在,所以报错了,大家可以在码云中有项目时再进行拉取代码并导入。

    我们可以看到的是,码云上面的文件是下载下来了。

TortoiseGit clone项目

  1. 进入刚刚创建的TortoiseGit 的项目文件夹,右键 – Git clone 填入码云的地址,并且选择要存放的本地地址。
  2. 下载文件
  3. 查看文件

拉取分支

拉取分支本来应该在下面才对,但是为了展示不同得工具进行代码操作,于是就将这部分内容提前了。

git 命令行拉取分支

  1. 创建本地分支
git branch 分支名
  1. 查看本地分支,*绿色 表示当前分支为master分支
git branch


3. 将本地分支推到远程仓库

git push origin 分支名
  1. 我在此处执行时报异常,这里大概说:“origin”不存在
  2. 查询源配置,果然没有设置,在此设置源配置。
#查看源配置
git remote -v

  

 #设置源配置 git@gitee.com:wuyouxin/Git-XueXi.git 为从git上复制得clone路径 
git remote add origin git@gitee.com:wuyouxin/Git-XueXi.git

# 将origin源配置推到 master 上
git push origin master 
  1. 重新执行步骤 3,然后查看远程仓库的分支
git branch -r

  

eclipse Git插件拉取分支

  1. 首先我这里在主干master上面上传了一个项目,否则无法导入到eclipse中,也就无法去演示拉取新的分支了。
  2. 右键单击项目 – team – switch To – New Branch
  3. 填写分支名,上面master表示从哪啦分支,我这以master拉取分支1.0.2,然后 Finish
  4. 右键项目 – Team – Push Branch ‘1.0.2’
  5. 直接 next
  6. 然后 Finish
  7. 最后去码云上查看,新分支1.0.2已经被创建。

TortoiseGit 拉取分支

  1. 首先进入到 TortoiseGit 目录下 右键 – TortoiseGit – Create Branch
  2. 给新分支命名 1.0.3
  3. 切换分支 右键 – TortoiseGit – Switch/Checkout
  4. 将分支切换到 1.0.3
  5. 将 1.0.3 push 到远程仓库 右键 – TortoiseGit – push
  6. 提交
  7. 在远程仓库进行查看

切换分支

git 命令行切换分支

git checkout 分支名

从 master 分支 切换到 1.0.1 分支

eclipse Git插件切换分支

右键项目 – Team – Switch To – 分支名 就切换完毕

TortoiseGit 切换分支

使用 TortoiseGit 切换分支,在上面创建新分支时就有过演示,在此就不做赘述。

上传文件

首先我在最初创建的三个文件夹中加入三个txt文件,分别为 1.0.1.txt,1.0.2.txt,1.0.3.txt

git 命令行上传文件

  1. 查看工作目录和暂存区的状态,发现工作目录中存在1.0.1.txt文件未提交
#查询工作目录和暂存区的状态
git status

  1. 将文件加入暂存区
git add 1.0.1.txt
  1. 再次查看工作目录和暂存区的状态,发现此时工作区没有未提交文件,但是暂存区有未提交的文件。


4. 提交

git commit -m '提交1.0.1.txt'

  1. 最后将暂存区内容推送到远程仓库
git push

  1. 最后去码云上面查看

eclipse Git插件上传文件

  1. 将文件提交到暂存区,选择需要提交的文件,右键 – team – add to Index
  2. 提交文件 右键文件 – team – Commit
  3. 写注释 单击 commit and push
  4. 去码云上查看

TortoiseGit 上传文件

  1. 将文件提交到缓存区 右键文件 – TortoiseGit – Add
  2. commit文件 右键文件 – Git Commit -> 分支名
  3. 写注释 提交
  4. 将文件push到远程仓库 右键 – TortoiseGit – push
  5. push分支
  6. 在码云查看

下载文件

我在码云上在三个分支中分别加一个文件,来演示下载。

git 命令行下载文件

  1. 下载文件
git pull

eclipse Git插件下载文件

右键项目 team – pull

TortoiseGit 下载文件

  1. 右键 TortoiseGit – pull
  2. 选择分支

合并分支

git 命令行合并分支

  1. 首先需要将分支切换到被合的那个分支上(分支往主干上合代码,就需要切换到主干上)
  2. 合并代码
git merge 分支名 


3. 我在合并是报一个错误,大概说是因为两个仓库提交历史不一致,无法合并,我这里使用强制合并,在后面加上 --allow-unrelated-histories 最后需要注意的是,有个文件冲突需要解决(如何解决冲突在下面会说到),解决之后可以直接提交代码,提交结束代码合并完毕。

eclipse Git插件合并分支

  1. 首先一样需要将代码切换到要提交的分支上,我这里还是提交到主干上。
  2. 开始合并代码 右键 – Team – Merge
  3. 选择要合并的分支 – Merge 这里如果存在冲突,就解决冲突,如果不存在冲突,则合并成功,提交代码即可。

TortoiseGit 合并分支

  1. 依旧首先将代码切换到主干
  2. 开始合并 右键 – TortoiseGit – Merge
  3. 选择合并的分支,选择Squash 合并,然后ok。如果有冲突解决冲突,否则合并成功。

删除分支

git 命令行删除分支

  1. 删除远程分支(删除之后可以使用 git branch -r 进行查看)
 git push origin --delete 分支名

  1. 删除本地分支(删除之后可以使用 git branch 进行查看)
git branch -d 分支名

eclipse Git插件删除分支

删除本地分支

  1. 删除分支 右键 – Team – Advanced – Delete Branch
  2. 选择要删除的分支 – ok 即可删除

删除远程分支

  1. 开始删除 右键 – Team – Remote – Push
  2. next
  3. 选择删除分支 – Add Spec – Finish

TortoiseGit 删除分支

  1. 开始删除 TortoiseGit – Switch/Checkout
  2. 选择更多
  3. 选择分支 heads(本地分支),origin(远程分支),然后选择要删除的分支,右键 – Delete branch 删除

解决冲突

在主干master 中创建一个一个文件 代码冲突演示.txt,然后三个工具都进行下载。

git 命令行解决冲突

  1. 首先在码云直接修改文件,然后在本地修改文件。
  2. 提交,提交之前pull,报有文件冲突。
  3. 打开文件<<<<<<< HEAD ======= 之间的代码为本地代码。====== 到 >>>>>> 之间的代码为远程分支代码。将需要的代码保留,提交即可。

eclipse Git插件解决冲突

  1. 首先在码云直接修改文件,然后在eclipse修改文件。
  2. 比对代码 右键项目 – Team – Synchronize Workspace
  3. 文件上带有红色双箭头的为存在冲突的代码。左侧为本地代码,右侧为远程代码
  4. 将远程代码拉到本地
  5. Add to index – Commit – pull
  6. 查看文件 <<<<<<< HEAD ======= 之间的代码为本地代码。====== 到 >>>>>> 之间的代码为远程分支代码。将需要的代码保留,提交即可。

TortoiseGit 解决冲突

TortoiseGit 解决冲突其实也大同小异,都是提交代码时发现有冲突,pull远程文件下来修改文件冲突,然后提交即可。

看这里:如果你觉得内容对你有帮助,请动动小手点个好看。关注我,后期内容更精彩,还有海量资源分享哦!

Git 基本应用的更多相关文章

  1. Git 子模块 - submodule

    有种情况我们经常会遇到:某个工作中的项目需要包含并使用另一个项目. 也许是第三方库,或者你 独立开发的,用于多个父项目的库. 现在问题来了:你想要把它们当做两个独立的项目,同时又想在 一个项目中使用另 ...

  2. Git 在团队中的最佳实践--如何正确使用Git Flow

    我们已经从SVN 切换到Git很多年了,现在几乎所有的项目都在使用Github管理, 本篇文章讲一下为什么使用Git, 以及如何在团队中正确使用. Git的优点 Git的优点很多,但是这里只列出我认为 ...

  3. Git与Repo入门

    版本控制 版本控制是什么已不用在说了,就是记录我们对文件.目录或工程等的修改历史,方便查看更改历史,备份以便恢复以前的版本,多人协作... 一.原始版本控制 最原始的版本控制是纯手工的版本控制:修改文 ...

  4. Git Bash的一些命令和配置

    查看git版本号: git --version 如果是第一次使用Git,你需要设置署名和邮箱: $ git config --global user.name "用户名" $ gi ...

  5. 在Ubuntu 16.10 安装 git 并上传代码至 git.oschina.net

    1. 注册一个账号和创建项目 先在git.oschina.net上注册一个账号和新建一个project ,如project name 是"myTest". 2.安装git sudo ...

  6. 史上最详细git教程

    题外话 虽然这个标题很惊悚,不过还是把你骗进来了,哈哈-各位看官不要着急,耐心往下看 Git是什么 Git是目前世界上最先进的分布式版本控制系统. SVN与Git的最主要的区别 SVN是集中式版本控制 ...

  7. [版本控制之道] Git 常用的命令总结(欢迎收藏备用)

    坚持每天学习,坚持每天复习,技术永远学不完,自己永远要前进 总结日常开发生产中常用的Git版本控制命令 ------------------------------main-------------- ...

  8. 【解决方案】Myeclipse 10 安装 GIT 插件 集成 步骤 图解

    工程开发中,往往要使用到集成GIT ,那么下面说说插件安装步骤 PS:以Myeclipse 10 为例,讲解集成安装步骤. ----------------------main------------ ...

  9. git 命令

    切换仓库地址: git remote set-url origin xxx.git切换分支:git checkout name撤销修改:git checkout -- file删除文件:git rm  ...

  10. git亲测命令

    一.Git新建本地分支与远程分支关联问题 git checkout -b branch_name origin/branch_name 或者 git branch --set-upstream bra ...

随机推荐

  1. Java 面向对象(四)继承

    一.继承的概述(Inherited) 1.由来 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可. 其中,多个类可以称为 子类(派生类 ...

  2. Golang内存管理

    Golang 内存管理 原文链接[http://legendtkl.com/2017/04/02/golang-alloc/] Golang 的内存管理基于 tcmalloc,可以说起点挺高的.但是 ...

  3. EF方式增、删、改、查(基本使用)

    右击项目——添加——新建项——数据(C#)——选择ADO.NET实体数据模型——点击添加——然后根据实体数据模型向导来一步步的做. 用到的表 using System; using System.Da ...

  4. 阿里高级架构师教你使用Spring JMS处理消息事务源码案例

    消费者在接收JMS异步消息的过程中会发生执行错误,这可能会导致信息的丢失.该源码展示如何使用本地事务解决这个问题.这种解决方案可能会导致在某些情况下消息的重复(例如,当它会将信息储存到数据库,然后监听 ...

  5. Python多线程应用于自动化测试

    Python多线程应用于自动化测试 将多线程在测试巧妙地应用,确实会带来很多好处,并且这是充分利用机器资源执行高效率测试很好的方式 # -*- coding: utf-8 -*- import thr ...

  6. python_网络编程hmac模块验证客户端的合法性

    hmac模块: 比较两个函数的密钥是否一致: import hmac import os msg = os.urandom(32) #生成32位随机字节码 def wdc(): key = b'wdc ...

  7. mac安装MySQLdb(mysql-python模块)

    折腾了有一会,网上资料很多,但是在实际安装时就会发现有很多坑,如下实战操作可行.供参考. Command "python setup.py egg_info" failed wit ...

  8. validatebox自定义验证规则以及使用

    //===============jsp======state==== //开启验证 <script  type="text/javascript"> ​​​​​​​y ...

  9. Windows10关闭自动更新总结

    试过好多关闭windows自动更新的方法,但是在每次重启后发现C盘又塞了一堆更新包,强迫症的我必须要彻底关闭它! 1. services关闭 运行 services.msc ,找到Windows Up ...

  10. Tarjan算法【阅读笔记】

    应用:线性时间内求出无向图的割点与桥,双连通分量.有向图的强连通分量,必经点和必经边. 主要是求两个东西,dfn和low 时间戳dfn:就是dfs序,也就是每个节点在dfs遍历的过程中第一次被访问的时 ...