Git 基本应用
微信公众号:Java修炼指南
博客园:https://home.cnblogs.com/u/wuyx/
CSDN: https://mp.csdn.net/
简书:https://www.jianshu.com/
关注可与各位开发者共同探讨学习经验,以及进阶经验。如果有什么问题或建议,请在公众号留言。
之前4月份刚换公司,近期也算是比较渐渐的适应了新公司的节奏,于是乎乘着假期来写一些东西。之前出入公司时写过一篇git的使用,只是一些基本操作,于是打算再写一篇基础操作篇。我发现在开发过程中我们也许不仅仅使用git的命令行去操作与git远程仓库进行同步,可能会使用到eclipse的集成工具,或者是TortoiseGit等工具进行操作,或者是三者结合使用。
准备工作
首先我们需要创建自己的git仓库,可以使用 github, 也可以使用码云,我在此处使用的是码云。
git 命令窗口 此处为我的云盘的资源 提取码为:85dl
TortoiseGit 客户端 此处为我的云盘的资源 提取码为:2nqj
- 点击help – Install new software – Add 在Location中输入http://download.eclipse.org/egit/updates/
- 将几个选项勾选,然后下一步,直到安装,重启eclipse,就安装完毕了
- 将自己git信息配置到eclipse中,Window – preferences
这个文件夹用于学习git的操作,里面再创建三个文件夹,分别用git,eclipse,TortoiseGit来操作。
- 首先进入到文件夹,打开git命令窗口
- init 初始化,将此文件夹变为git管理文件夹,并且文件夹中会出现 .git的文件夹
git init
3. 去码云中找到clone的路径
4. clone 项目
git clone xxx
5. 此时项目就被clone下来了。
- 首先将eclipse的工作空间调整到刚刚创建得文件夹下面。
- 将项目clone进来,右键 – import – Git
- 选择clone URL
- 在此处需要输入刚刚从码云上面复制下来的地址。
- 选择主干 master
- 选择存放地址,这里选择我们刚刚创建的地址。
- 选择导入得文件夹
- 这里导入项目,下面报错了,为什么报错呢?因为在此处项目文件夹中其实是没有java项目存在,所以报错了,大家可以在码云中有项目时再进行拉取代码并导入。
我们可以看到的是,码云上面的文件是下载下来了。
- 进入刚刚创建的TortoiseGit 的项目文件夹,右键 – Git clone 填入码云的地址,并且选择要存放的本地地址。
- 下载文件
- 查看文件
拉取分支本来应该在下面才对,但是为了展示不同得工具进行代码操作,于是就将这部分内容提前了。
- 创建本地分支
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
- 首先我这里在主干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 – Create Branch
- 给新分支命名 1.0.3
- 切换分支 右键 – TortoiseGit – Switch/Checkout
- 将分支切换到 1.0.3
- 将 1.0.3 push 到远程仓库 右键 – TortoiseGit – push
- 提交
- 在远程仓库进行查看
git checkout 分支名
从 master 分支 切换到 1.0.1 分支
右键项目 – Team – Switch To – 分支名 就切换完毕
使用 TortoiseGit 切换分支,在上面创建新分支时就有过演示,在此就不做赘述。
首先我在最初创建的三个文件夹中加入三个txt文件,分别为 1.0.1.txt,1.0.2.txt,1.0.3.txt
- 查看工作目录和暂存区的状态,发现工作目录中存在1.0.1.txt文件未提交
#查询工作目录和暂存区的状态
git status
- 将文件加入暂存区
git add 1.0.1.txt
- 再次查看工作目录和暂存区的状态,发现此时工作区没有未提交文件,但是暂存区有未提交的文件。
4. 提交
git commit -m '提交1.0.1.txt'
- 最后将暂存区内容推送到远程仓库
git push
- 最后去码云上面查看
- 将文件提交到暂存区,选择需要提交的文件,右键 – team – add to Index
- 提交文件 右键文件 – team – Commit
- 写注释 单击 commit and push
- 去码云上查看
- 将文件提交到缓存区 右键文件 – TortoiseGit – Add
- commit文件 右键文件 – Git Commit -> 分支名
- 写注释 提交
- 将文件push到远程仓库 右键 – TortoiseGit – push
- push分支
- 在码云查看
我在码云上在三个分支中分别加一个文件,来演示下载。
- 下载文件
git pull
右键项目 team – pull
- 右键 TortoiseGit – pull
- 选择分支
- 首先需要将分支切换到被合的那个分支上(分支往主干上合代码,就需要切换到主干上)
- 合并代码
git merge 分支名
3. 我在合并是报一个错误,大概说是因为两个仓库提交历史不一致,无法合并,我这里使用强制合并,在后面加上 --allow-unrelated-histories 最后需要注意的是,有个文件冲突需要解决(如何解决冲突在下面会说到),解决之后可以直接提交代码,提交结束代码合并完毕。
- 首先一样需要将代码切换到要提交的分支上,我这里还是提交到主干上。
- 开始合并代码 右键 – Team – Merge
- 选择要合并的分支 – Merge 这里如果存在冲突,就解决冲突,如果不存在冲突,则合并成功,提交代码即可。
- 依旧首先将代码切换到主干
- 开始合并 右键 – TortoiseGit – Merge
- 选择合并的分支,选择Squash 合并,然后ok。如果有冲突解决冲突,否则合并成功。
- 删除远程分支(删除之后可以使用 git branch -r 进行查看)
git push origin --delete 分支名
- 删除本地分支(删除之后可以使用 git branch 进行查看)
git branch -d 分支名
- 删除分支 右键 – Team – Advanced – Delete Branch
- 选择要删除的分支 – ok 即可删除
- 开始删除 右键 – Team – Remote – Push
- next
- 选择删除分支 – Add Spec – Finish
- 开始删除 TortoiseGit – Switch/Checkout
- 选择更多
- 选择分支 heads(本地分支),origin(远程分支),然后选择要删除的分支,右键 – Delete branch 删除
在主干master 中创建一个一个文件 代码冲突演示.txt,然后三个工具都进行下载。
- 首先在码云直接修改文件,然后在本地修改文件。
- 提交,提交之前pull,报有文件冲突。
- 打开文件<<<<<<< HEAD ======= 之间的代码为本地代码。====== 到 >>>>>> 之间的代码为远程分支代码。将需要的代码保留,提交即可。
- 首先在码云直接修改文件,然后在eclipse修改文件。
- 比对代码 右键项目 – Team – Synchronize Workspace
- 文件上带有红色双箭头的为存在冲突的代码。左侧为本地代码,右侧为远程代码
- 将远程代码拉到本地
- Add to index – Commit – pull
- 查看文件 <<<<<<< HEAD ======= 之间的代码为本地代码。====== 到 >>>>>> 之间的代码为远程分支代码。将需要的代码保留,提交即可。
TortoiseGit 解决冲突其实也大同小异,都是提交代码时发现有冲突,pull远程文件下来修改文件冲突,然后提交即可。
看这里:如果你觉得内容对你有帮助,请动动小手点个好看。关注我,后期内容更精彩,还有海量资源分享哦!