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 ...
随机推荐
- 【大数据】SmallFile-Analysis-Script
1.root账号先在namenode节点上配置一个定时任务,将fsimage定时传到其他客户机上进行操作 whereis hadoop命令确定安装目录,然后去配置文件找到namenode节点(data ...
- 第二章 Django之python安装(1)
Python 安装 Django 由百分百的纯 Python 代码编写而成,因此必须在系统中安装 Python .Django 需要 2.3 或更高版本的 Python.如果使用的是 Linux 或 ...
- PAT1046
题目链接 https://pintia.cn/problem-sets/994805260223102976/problems/994805277847568384 题解 题目有几个点需要注意: 甲和 ...
- 使用Struts2+Hibernate开发学生信息管理功能1
第一章:Struts2与Hibernate整合 1.课程简介 2.界面原型演示 3.Struts2与Hibernate整合 4.创建实体类 5.生成实体映射文件 6.生成表结构 1.课程简介 Stru ...
- python_模块2
1.sys模块 import sys # 获取一个值的应用计数 a = [11,22,33] b = a print(sys.getrefcount(a)) # python默认支持的递归数量 v1 ...
- WCF之WebService
一.Web Services简介 Web Services是支持客户端与服务器通过网络互操作的一种软件系统,是一组可以通过网络调用的应用程序API.在Web Services中主要到SOAP/UDDI ...
- java后台表单字符串长度验证
1.方法封装前提实体类属性去除首尾空白并进行反转义 //实体类属性的get方法 public String getContent() { if(!"".equals(字符串属性名) ...
- Django ManyToManyField.through_fields 和
示例: from django.db import models class Person(models.Model): name = models.CharField(max_length=50) ...
- android studio调试报错:java.lang.RuntimeException: Unable to start activity ComponentInfo
报错信息: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.pro_u_loc/com.e ...
- C# Contract诊断
命名空间 : using System.Diagnostics.Contracts; 属性标记 : [ContractOption(category: "runtime", set ...