MARKcz的个人空间 https://blog.eetop.cn/1763388 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

【Git】Git GUI使用方法(Git可视化客户端使用方法)

已有 883 次阅读| 2023-12-29 14:54 |个人分类:软件git使用|系统分类:其他| git使用

目录

安装和配置

操作流程

                    打开现有工程

                    初始化(Git init)

                    添加(Git add)

                    忽略(.gitignore)

                    提交(Git commit)

                   上传(Git push)

                   获取远程代码(Git remote/fetch)

                  合并(Git merge)

                   查看log

                 可视化比较差异diff和合并merge

      总结

安装和配置

配置账号

  运行gitbash

1

2

git config --global user.name "Your Name"

git config --global user.email you@example.com

安装

Git - Downloads

权限校验

首先,您的数据保存在远端服务器一份,服务器需要对您的身份识别。一段RSA加密字符串。

启动GUI,菜单-帮助,【Step1-创建密钥】Generate SSH KEY

b83e3bd2e056edc7cd012895b7e6eff9_format,png.png

【Step2-添加密钥】去你的代码托管服务器,你的账号设置中,添加它。

比如在Github中的地址,title随意,比如你可以用Home,company等作为标识来区别。

2d3c4579b3525473831ee5f8e5ae4dc2_format,png.png


Gitlab中的演示

0fa5a4ea31a3a691a9fd462edb767616_format,png.png

账号保存

如果不做设置的话,每次提交的时候,都会询问你填写密码。于是我们先来把这个设置好。

【Step3.1-添加环境变量

我的电脑 - 属性 - 高级系统设置 - 环境变量 - 新建变量

变量名HOME,变量值%USERPROFILE%

33dbd733cf43d6870107797376b7e71d_format,png.png

9a16f28711c3709902de9bad728148c6_format,png.png

d4ce9a7793e136890c1f62be441d7931_format,png.png

0886a04c9b037ec1d6f867d47fa02afe_format,png.png

【Step3.2-创建账号文件】

开始 - 运行 中打开%Home%,即windows的管理员账号文件夹。

新建一个名为“_netrc”的文件,填写你要保存的服务器地址及账号密码,保存。

10b6556e04ca75da32803b943aee51cf_format,png.png

67d737ee46f62034d8cac5af4fda2d9c_format,png.png

操作流程

如果你用过SVN的话就会大致了解操作流程,如果没有也没关系。

打开现有工程

3、使用git gui打开:

88b0783422f7abc09c1999f44bd3a871_tantexian70C550CDBCDD49A58B0C56B84FF7EB3B.png

初始化(Git init)

顾名思义,就是新建一个项目,跟你用PS新建一张画布一样。在你新建好的文件夹中右键创建即可,若点击Git bash则以此目录作为当前目录进入命令行状态。

3b2e56c5c73d3d2995a8efe23e38a558_format,png.png

添加(Git add)

添加并不是提交代码到远程Git库,Git也并不会你修改了代码它自动帮你保存你修改的每一个过程。你修改了很多文件,但未必所有的修改,最终打算提交上去,那么哪些是你打算提交的,你可以添加进来待会提交,叫做缓存改动。很简单,比如本地电脑上我有整个项目完整的东东,甚至包含了账号密码的一些文件,但是我只是ADD除账号密码之外的文件,并不缓存账号密码文件的改动。不被ADD它就不会参与后续的操作。通常我都会直接全部缓存,它会自动寻找所有有改动的文件,而不需要提交的文件放在忽略的文件夹中。(关于忽略下面我们就会说到)

918163c925ff81f3aa1c1ded01ff364f_format,png.png

忽略(.gitignore)

但实际上大部分我们的文件都是一起提交的,并不会逐一去甄选,又或者类似PSD这样的大源文件以及并不作为产品最终展示的过渡文件,我们可以统一放在临时文件夹中,并忽略此文件夹。

d6cc3c3c73d14605fd5de2c15d993e0b_format,png.png

提交(Git commit)

提交则代表此前被添加ADD的文件已确认被提交到Git库了。需要注意的是,如果你改变代码的缩进(尽管没有修改内容),默认状态下会被识别为整个代码全部变更。提交的时候是要求必须要写备注的

7c445963e29e4ef0e594e4fb45a321aa_format,png.png

上传(Git push)

顾名思义,上传则是上至远端服务器了。

207893577aa558f39adca3145094688c_format,png.png

获取远程代码(Git remote/fetch)

比如你在公司做好的东东,今夜难眠十分亢奋,回家准备继续搬砖,那咱们就在家里的电脑上,同上进行好各种安装配置账号,先把公司做好的东东嫩下来(不过公司是内网不可以,但是假如是Github上是可以的)。又或者和小伙伴一起开发个啥,你也要先fetch他的下来。至于怎么操作,下面上图。现在你只要知道,大大们下齿全露刷牙表情对你口口念念的fetch是个啥子~


先来设置与远程地址的关联,Git remote:

0bef321e7d4048823dd7a4ff86c4bb81_format,png.png


03451b3d588a11557376baf8b2d04b52_format,png.png

填写SSH地址与项目名。下面有3个选项:

第一个:立刻获取最新改动(所以如果是本地克隆远程一个项目,也可以这样操作)。

第二个:本地新建的项目,初始化远程仓库并发布过去。

第三个:什么也不做。

在项目的进行过程中,获取仓库的最新改动Git fetch

67874295c1883c7043eb7f29f716119d_format,png.png

选择从远程仓库哪个分支中获取更新,如果没有则只有主支。

提示成功则改动的已经被存放到临时区了,你一会还需要进行合并操作,如果没有任何改动,则列表中是空的,比如:

560ce6f687a28b4a7c99ca2d44a40a19_format,png.png

合并(Git merge)

请注意啦,不管你本地有没有代码,fetch之后呢,是都要merge的,也就是说,fetch下来后,大大的代码还在一个小黑屋里,我们需要把它装到自己兜里。

选择合并 - 本地合并,然后选择本地的分支(如果你没有创建分支,则只有1个主支master)

65dbe8ec6fb7ffe4d96ccba61480a3fb_format,png.png

冲突处理(Conflict)


合并的过程中可能会出现一些红色的文件与一堆叹号,这时候慌慌张张的点啥它都不管用,不用担心,不是程序坏了,只是有冲突的文件,例如A童鞋写了width:1180px,你写了width:auto。那到底用你们谁的呢。


在GUI界面正文区,正文区右键可以选择,Use local version(使用本地版本)或Use remote version(使用远程版本),到底用你的还是小伙伴的?或者你也可以自己打开文件进行手动处理。

263f5dd54256977ee1c7de03ead7f191_format,png.png


其他还有分支和一些高级功能,如果需要了解可以自己再摸索摸索,以上的操作已经可以满足简单的开发需求了。

查看log

4、打开git gui的提交日志历史:

ecb3fd1f54ce0ffcef45cb99ba236a6b_bbfadfb7e8b83ede7384469a27000c5b.png

aac1a24b5c345f05d84f13b994e28361_e5918128c49895a5e790c2da9eda939d.png

5、从init commit 开始,分析:

68c11be89835ed784534f2362aa22d15_f4d01b57261e739d75096fdb9f0a6e15.png

点击initial commit时候,下面出现该提交状态信息:

SHA1:为当前状态的唯一标示码

Child:标示该状态有一子状态

Branchs:该状态下延伸出的分支


接下来再一次举例说明:

866dede8020500bce54854ae2c138ce3_ef6de4684d98cf09ce4a63b321956b29.png


如上图大家可以看到:

Parent:表示该状态是由哪个状态延伸过来

Child:此处发现有三个孩子,这是因此从该处往后面延伸,与当前阶段的直接连线点有三个。

cd90e05f7564808a11936d1aab609a40_03788a5d8a50c7bf50a39ebbae558152.png

当前状态的tag为2014.1.2

Follows:前序tag为2014.1.1

Precedes:后续的tag为2014.1.3


6、关于git gui 历史提交的 简单使用:

50293f3318355583cd3b784b2c1011cb_a55c3c56170f42c059bf5c32aab501a2.png

从上图可知,右边的每一行文字描述,对应左边的一个小蓝点。(每一个小蓝点则代表一次提交或者一个tag),


因此点击右边文字描述he点击其对应的commit小蓝点效果一样。


注:不要别那些向上向下的箭头干扰,那个与右边的文字描述没有对应关系。


那么小箭头有什么作用呢?


图6-1

bd282291d946ea4c0f369300e3b3fb2e_6edf77a6c666e274cc157c205510f2a5.png

点击上述橙色箭头,下面出现一个Parent、两个Children。

寻找Parent56a58cc42100ffdc5287e153ce6bf6d10f52637b:

图6-2

8fb283c484486a5270b139211dc26148_ad60d6728f829769510593ebe815aa07.png

回到 图6-1,

寻找Children:b10dac3ae0e8be0f12538d9d2c06064878fa24d6:

2e8545563187e8a70fdf0e0c2152d4e7_084bd68fee83d90c68670005bc2c8c42.png

从上图可以发现,Children跳转到了后续一个分支上去了。而然在此分支开始处有一个向下的箭头。

到此处就能很清楚明白箭头的作用了。

向上箭头 :说明当前分支有孩子分支,在其他地方(只是图上不方便画出来)

向下箭头:说明当前分支是从之前某个分支延伸而来。

7、以github opentack nova为基础分析,得出最新master分支、openstack juno dev、stables/juno

、stable/ice、 30wish、tag 2014.1.1之间的关系如下图。

6691271f58d371e86b5f8dd07a18a5e4_daec7b08089be0dcd18894128fc7778b.png

其实wish、stable/ice两个 分支是从tag 2014.1.1衍生出去、open juno dev 从2014.1.rc1衍生出去。


stable/juno从2014.2.1衍生出去。


转载于:https://my.oschina.net/tantexian/blog/645108


可视化比较差异diff和合并merge

Git对比与合并工具Beyond Compare的配置


windows下C:\Users\xxxx  (xxxx是你登录的用户名)下有.gitconfig


后来突然想起来用户目录下(C:\Users\hongkenzhao)的.gitconfig看看配置情况,才发现原因。 打开配置文件看到的信息差不多是这样:

[diff]

tool = bc4

[difftool]

prompt = false

[difftool "bc4"]

cmd = \"c:/program files (x86)/beyond compare 4/bcomp.exe\"

.....


使用git bash是执行上述几个命令后,.gitconfig文件中并没有 \"$LOCAL\" \"$REMOTE\""的影子,所以使用difftool比对文件时,两边都是空白,因为根本就没有传参数进去。 所以换一个思路,不用命令设置,而是直接编辑.gitconfig文件设置,就没问题了。

.gitconfig文件新增如下配置并保存

[diff]

tool = bc4

[difftool]

prompt = false

[difftool "bc4"]

cmd = \"c:/program files (x86)/beyond compare 4/bcomp.exe\" \"$LOCAL\" \"$REMOTE\"

[merge]

tool = bc

[mergetool]

prompt = false

[mergetool "bc4"]

cmd = \"c:/program files (x86)/beyond compare 4/bcomp.exe\" \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\"

然后在git命令行中执行相关命令就ok啦

#比对当前文件相对于Head版本的改动

git difftool <file_name>

git difftool HEAD // 比较当前修改情况

#当merge <branch_name>提示冲突时,执行下面命令便可以调出bc合并冲突

git mergetool


链接:https://www.jianshu.com/p/5c025d9f6df9

总结

1.先进行安装,密钥添加,账号等一次性操作。

2.操作流程:

1c5bce898355f342f3f01fbebaeb036c_format,png.png

是不是觉得so easy了呢,赶紧have a try!


补充:


1.GUI界面中中文乱码问题:Git安装目录,etc/gitconfig,添加如下,中文正常显示


[gui]

    encoding = utf-8

2.GUI添加自定义命令


Tools - Add,名称填写菜单展示时的名称,Command填写命令,例如“git submodule foreach git pull origin master”更新公共库。勾选global为全局可用。


3.找不到文件BUG


这里补充一个问题,例如你新建了分支后,有可能出现新拉取的分支找不到的现象,请关闭GUI重新打开即可。


4.Windows下的多窗口命令行


下载powerCMD  / cmder


添加环境变量;C:\Program Files\Git\cmd  (改为你的实际路径)



转自他人仅供学习,如有侵权联系删除





评论 (0 个评论)

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 3

    关注
  • 0

    粉丝
  • 2

    好友
  • 0

    获赞
  • 0

    评论
  • 46

    访问数

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-5 10:20 , Processed in 0.020739 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部