Git 基本应用
微信公众号: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插件
- 点击help – Install new software – Add 在Location中输入http://download.eclipse.org/egit/updates/

- 将几个选项勾选,然后下一步,直到安装,重启eclipse,就安装完毕了

- 将自己git信息配置到eclipse中,Window – preferences

创建Git操作文件夹
这个文件夹用于学习git的操作,里面再创建三个文件夹,分别用git,eclipse,TortoiseGit来操作。
clone项目
git 命令行clone项目
- 首先进入到文件夹,打开git命令窗口

- init 初始化,将此文件夹变为git管理文件夹,并且文件夹中会出现 .git的文件夹
git init

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

5. 此时项目就被clone下来了。
eclipse Git插件clone项目
- 首先将eclipse的工作空间调整到刚刚创建得文件夹下面。
- 将项目clone进来,右键 – import – Git

- 选择clone URL

- 在此处需要输入刚刚从码云上面复制下来的地址。

- 选择主干 master

- 选择存放地址,这里选择我们刚刚创建的地址。

- 选择导入得文件夹

- 这里导入项目,下面报错了,为什么报错呢?因为在此处项目文件夹中其实是没有java项目存在,所以报错了,大家可以在码云中有项目时再进行拉取代码并导入。

我们可以看到的是,码云上面的文件是下载下来了。
TortoiseGit clone项目
- 进入刚刚创建的TortoiseGit 的项目文件夹,右键 – Git clone 填入码云的地址,并且选择要存放的本地地址。

- 下载文件

- 查看文件

拉取分支
拉取分支本来应该在下面才对,但是为了展示不同得工具进行代码操作,于是就将这部分内容提前了。
git 命令行拉取分支
- 创建本地分支
git branch 分支名
- 查看本地分支,*绿色 表示当前分支为master分支
git branch

3. 将本地分支推到远程仓库
git push origin 分支名
- 我在此处执行时报异常,这里大概说:“origin”不存在

- 查询源配置,果然没有设置,在此设置源配置。
#查看源配置
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
- 重新执行步骤 3,然后查看远程仓库的分支
git branch -r

eclipse Git插件拉取分支
- 首先我这里在主干master上面上传了一个项目,否则无法导入到eclipse中,也就无法去演示拉取新的分支了。
- 右键单击项目 – team – switch To – New Branch

- 填写分支名,上面master表示从哪啦分支,我这以master拉取分支1.0.2,然后 Finish

- 右键项目 – Team – Push Branch ‘1.0.2’

- 直接 next

- 然后 Finish

- 最后去码云上查看,新分支1.0.2已经被创建。

TortoiseGit 拉取分支
- 首先进入到 TortoiseGit 目录下 右键 – TortoiseGit – Create Branch

- 给新分支命名 1.0.3

- 切换分支 右键 – TortoiseGit – Switch/Checkout

- 将分支切换到 1.0.3

- 将 1.0.3 push 到远程仓库 右键 – TortoiseGit – push

- 提交

- 在远程仓库进行查看

切换分支
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.0.1.txt文件未提交
#查询工作目录和暂存区的状态
git status

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

4. 提交
git commit -m '提交1.0.1.txt'

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

- 最后去码云上面查看

eclipse Git插件上传文件
- 将文件提交到暂存区,选择需要提交的文件,右键 – team – add to Index

- 提交文件 右键文件 – team – Commit

- 写注释 单击 commit and push

- 去码云上查看

TortoiseGit 上传文件
- 将文件提交到缓存区 右键文件 – TortoiseGit – Add

- commit文件 右键文件 – Git Commit -> 分支名

- 写注释 提交

- 将文件push到远程仓库 右键 – TortoiseGit – push

- push分支

- 在码云查看

下载文件
我在码云上在三个分支中分别加一个文件,来演示下载。
git 命令行下载文件
- 下载文件
git pull

eclipse Git插件下载文件
右键项目 team – pull
TortoiseGit 下载文件
- 右键 TortoiseGit – pull

- 选择分支

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

3. 我在合并是报一个错误,大概说是因为两个仓库提交历史不一致,无法合并,我这里使用强制合并,在后面加上 --allow-unrelated-histories 最后需要注意的是,有个文件冲突需要解决(如何解决冲突在下面会说到),解决之后可以直接提交代码,提交结束代码合并完毕。
eclipse Git插件合并分支
- 首先一样需要将代码切换到要提交的分支上,我这里还是提交到主干上。
- 开始合并代码 右键 – Team – Merge

- 选择要合并的分支 – Merge 这里如果存在冲突,就解决冲突,如果不存在冲突,则合并成功,提交代码即可。

TortoiseGit 合并分支
- 依旧首先将代码切换到主干
- 开始合并 右键 – TortoiseGit – Merge

- 选择合并的分支,选择Squash 合并,然后ok。如果有冲突解决冲突,否则合并成功。

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

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

eclipse Git插件删除分支
删除本地分支
- 删除分支 右键 – Team – Advanced – Delete Branch

- 选择要删除的分支 – ok 即可删除

删除远程分支
- 开始删除 右键 – Team – Remote – Push

- next

- 选择删除分支 – Add Spec – Finish

TortoiseGit 删除分支
- 开始删除 TortoiseGit – Switch/Checkout

- 选择更多

- 选择分支 heads(本地分支),origin(远程分支),然后选择要删除的分支,右键 – Delete branch 删除

解决冲突
在主干master 中创建一个一个文件 代码冲突演示.txt,然后三个工具都进行下载。
git 命令行解决冲突
- 首先在码云直接修改文件,然后在本地修改文件。
- 提交,提交之前pull,报有文件冲突。

- 打开文件<<<<<<< HEAD ======= 之间的代码为本地代码。====== 到 >>>>>> 之间的代码为远程分支代码。将需要的代码保留,提交即可。

eclipse Git插件解决冲突
- 首先在码云直接修改文件,然后在eclipse修改文件。
- 比对代码 右键项目 – Team – Synchronize Workspace

- 文件上带有红色双箭头的为存在冲突的代码。左侧为本地代码,右侧为远程代码

- 将远程代码拉到本地

- Add to index – Commit – pull

- 查看文件 <<<<<<< HEAD ======= 之间的代码为本地代码。====== 到 >>>>>> 之间的代码为远程分支代码。将需要的代码保留,提交即可。

TortoiseGit 解决冲突
TortoiseGit 解决冲突其实也大同小异,都是提交代码时发现有冲突,pull远程文件下来修改文件冲突,然后提交即可。
看这里:如果你觉得内容对你有帮助,请动动小手点个好看。关注我,后期内容更精彩,还有海量资源分享哦!

Git 基本应用的更多相关文章
- Git 子模块 - submodule
有种情况我们经常会遇到:某个工作中的项目需要包含并使用另一个项目. 也许是第三方库,或者你 独立开发的,用于多个父项目的库. 现在问题来了:你想要把它们当做两个独立的项目,同时又想在 一个项目中使用另 ...
- Git 在团队中的最佳实践--如何正确使用Git Flow
我们已经从SVN 切换到Git很多年了,现在几乎所有的项目都在使用Github管理, 本篇文章讲一下为什么使用Git, 以及如何在团队中正确使用. Git的优点 Git的优点很多,但是这里只列出我认为 ...
- Git与Repo入门
版本控制 版本控制是什么已不用在说了,就是记录我们对文件.目录或工程等的修改历史,方便查看更改历史,备份以便恢复以前的版本,多人协作... 一.原始版本控制 最原始的版本控制是纯手工的版本控制:修改文 ...
- Git Bash的一些命令和配置
查看git版本号: git --version 如果是第一次使用Git,你需要设置署名和邮箱: $ git config --global user.name "用户名" $ gi ...
- 在Ubuntu 16.10 安装 git 并上传代码至 git.oschina.net
1. 注册一个账号和创建项目 先在git.oschina.net上注册一个账号和新建一个project ,如project name 是"myTest". 2.安装git sudo ...
- 史上最详细git教程
题外话 虽然这个标题很惊悚,不过还是把你骗进来了,哈哈-各位看官不要着急,耐心往下看 Git是什么 Git是目前世界上最先进的分布式版本控制系统. SVN与Git的最主要的区别 SVN是集中式版本控制 ...
- [版本控制之道] Git 常用的命令总结(欢迎收藏备用)
坚持每天学习,坚持每天复习,技术永远学不完,自己永远要前进 总结日常开发生产中常用的Git版本控制命令 ------------------------------main-------------- ...
- 【解决方案】Myeclipse 10 安装 GIT 插件 集成 步骤 图解
工程开发中,往往要使用到集成GIT ,那么下面说说插件安装步骤 PS:以Myeclipse 10 为例,讲解集成安装步骤. ----------------------main------------ ...
- git 命令
切换仓库地址: git remote set-url origin xxx.git切换分支:git checkout name撤销修改:git checkout -- file删除文件:git rm ...
- git亲测命令
一.Git新建本地分支与远程分支关联问题 git checkout -b branch_name origin/branch_name 或者 git branch --set-upstream bra ...
随机推荐
- CentOS7安装CDH 第三章:CDH中的问题和解决方法
相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...
- TSN(Temporal Segment Networks)
一.算法详解 二.代码解析(pytorch版) 训练代码:https://blog.csdn.net/u014380165/article/details/79058147 测试代码:https:// ...
- nginx环境依赖
安装nginx所必需的的依赖环境 yum -y install pcre pcre-devel yum -y install zlib zlib-devel yum -y install zlib z ...
- Vs2017 NetCode EF Mysql 控制台应用
1 运行环境 vs2017 NetCode2.0 2 NuGet MySql.Data.EntityFrameworkCore 8.0.18 Json.Net 1.0.16 3 源代 ...
- python将一个字符串写入文件中的编码问题
python2将一个字符串写入文件中: 1.如果字符串是str类型 # -*- coding:utf-8 -*- txtFile="今天天气不错" name = "1.t ...
- jquery中的ajaxSetup
在项目开发中如果我们想给某一个页面中的所有的ajax设置统一的参数的情况下,可以是使用ajaxSetup,非常好用 $.ajaxSetup({ type:'post', dataType:'json' ...
- PHP 调用 exec 执行中文命令的坑
服务器系统Linux通过php exec 执行rar x 解压命令 保持目录结构,压缩包内英文目录正常解压中文目录解压失败,请问有什么办法可以解决直接在终端命令进行解压是没有问题的 最终解决办法 $s ...
- BOOTP引导程序协议
我们介绍了一个无盘系统,它在不知道自身 I P地址的情况下,在进行系统引导时能够通过R A R P来获取它的I P地址.然而使用R A R P有两个问题:(1)I P地址是返回的唯一结果:(2)既然R ...
- SQL 删除重复记录,只保留一条记录
DELETE FROM py_bond_shenzhen_exchange_opinion_2_1 WHERE id NOT IN (SELECT id FROM (SELECT min(id) AS ...
- JQuery中 text()、html() 以及 val()以及innerText、innerHTML和value
设置内容 - text().html() 以及 val() 我们将使用前一章中的三个相同的方法来设置内容: text() - 设置或返回所选元素的文本内容 html() - 设置或返回所选元素的内容( ...