Git工具的使用(linux示例,windows类似)

这篇具有很好参考价值的文章主要介绍了Git工具的使用(linux示例,windows类似)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、了解git

特点

  1. git是分布式的,特点是保存本地文件的元数据(meta data,文件属性等),将本地文件所有的的元信息,记录在git repo里的.git隐藏文件夹中。

  2. git的使用可以不用网络,因为本地版本控制仓库就在你自己机器上,每一个人就是一个完成的版本库。
    只不过是最终将你的本地仓库,作为一个分支,推送、合并到一个统一的线上代码仓库主干线即可,实现代码集成。

软件

Git有多种方式使用

  • 原生命令行,才能使用git所有命令,会git命令再去用GUI图形工具,完全无压力
  • GUI图形软件,只是实现了git的部分功能,以减免操作难度,难以记住git原生命令
  • 不同的人会有不同的GUI图形工具,但是所有人用的git原生命令都一样,推荐学习命令

weindows下载地址

windows下载安装包下一步即可

linux下安装

[root@docker-33 ~/gitProject]#yum install git -y
[root@docker-33 ~/gitProject]#git --version
git version 1.8.3.1

2、git工具的详细使用

前言

  • 既然已经在系统上安装了 Git,你会想要做几件事来定制你的 Git 环境。 每台计算机上只需要配置一次,程序升级时会保留配置信息。 你可以在任何时候再次通过运行命令来修改它们。
  • 先回顾下linux用户的概念
linux多用户,多任务

一台机器可以有多个用户登录,同时操作

因此就存在了不同的环境变量,用来区分,每个登录linux机器的用户

比如root用户的信息,在ls -a /root/

普通xxx用户的信息,在 ls -a /home/xxx

不同的用户登录后,linux加载不同的环境变量参数,对系统控制
  • Git 自带一个 git config 的工具来帮助设置控制 Git 外观和行为的配置变量。 这些变量存储在三个不同的位置:
    • –system

    • –global

    • –local

    • /etc/gitconfig 文件: 包含系统上每一个用户及他们仓库的通用配置。 如果使用带有 --system 选项的 git config 时,它会从此文件读写配置变量。(针对任意登录该linux的用户都生效)

    • ~/.gitconfig~/.config/git/config 文件:只针对当前用户。 可以传递 --global 选项让 Git 读写此文件。(只针对当前登录系统的用户生效)

    • 当前使用仓库的 Git 目录中的 config 文件(就是 .git/config):针对该仓库。 --local 当前仓库配置。(只针对某一个文件夹生效,例如/learn/linux/.git/config)

初始化配置

# 给git设置配置信息 --global 参数,身份信息,会写入 ~/.gitconfig

# 下边这几行就是说是给添加一个身份信息,方便知道那个版本的作者具体是谁修改的
# user.name 和 email 必须配置,不然拉取代码的时候也需要配置
git config --global user.name "JShan"
git config --global user.email "JShan@163.com"
# 开启git命令的颜色支持
git config --global color.ui true

本地仓库管理代码版本

  • 本地已经写好了代码,需要用git去管理 详细解释参考官网
# 1、首先创建一个本地项目目录 初始化本地repo仓库
[root@docker-33 ~/gitProject]#pwd
/root/gitProject
# 2、git init   # 初始化一个普通的目录为 git local repo
[root@docker-33 ~/gitProject]#git init 
Initialized empty Git repository in /root/gitProject/.git/
[root@docker-33 ~/gitProject]#ls -a
.  ..  .git
# 3、git init命令会创建一个.git隐藏子目录,这个目录包含初始化git仓库所有的核心文件。
# 4、此步仅仅是初始化,此时项目里的代码还没有被git跟踪,因此还需要git add对项目文件跟踪,然后git commit提交到local repo。
  • 初始化、添加、以及提交命令解释
git init  文件夹 进行初始化git仓库

git status 可以查看当前git仓库的状态

git add 文件 添加文件到暂存区

git commit -m '注释' 
  • 示例:
# 上边本地仓库已经初始化完成
# 1、查看代码状态 因为此时项目目录下没有文件 创建一个文件做测试
[root@docker-33 ~/gitProject]#git status
# On branch master
#
# Initial commit
#
nothing to commit (create/copy files and use "git add" to track)
[root@docker-33 ~/gitProject]#ls

# 2、创建一个1.sh的文件作为测试
[root@docker-33 ~/gitProject]#touch 1.sh
[root@docker-33 ~/gitProject]#ls
1.sh

# 3、此时再次查看仓库的状态,发现刚刚创建的文件提示可以添加到缓存区,也提示了使用什么命令进行添加
[root@docker-33 ~/gitProject]#git status
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#	1.sh
nothing added to commit but untracked files present (use "git add" to track)

# 4、通过git add . 这个点表示当前目录,此时会自动检索当前目录下所有可添加的文件进行添加到缓存区,如果不用 . 可以指定文件名进行添加
[root@docker-33 ~/gitProject]#git add .

# 5、此时再次查看状态,可以看到缓区已经有了刚才的文件,此时提示通过git rm --cached <file>... 可以删除缓存区的文件
[root@docker-33 ~/gitProject]#git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#	new file:   1.sh
#

# 6、通过git commit -m "v1.0" 提交代码, -m "注释" 
[root@docker-33 ~/gitProject]#git commit -m "v1.0"
[master (root-commit) a0e0132] v1.0
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 1.sh

# 7、再次查看状态,发现已经没有需要添加的文件
[root@docker-33 ~/gitProject]#git status
# On branch master
nothing to commit, working directory clean

# 8、通过git log 可以查看代码提交的历史
[root@docker-33 ~/gitProject]#git log
commit a0e01322a0aa78c2e54714ed4fba6a5abf9b0a28
Author: JShan <xxx@163.com>
Date:   Fri Mar 29 10:20:03 2024 +0800

    v1.0

克隆远程仓库的代码

示例使用gitee,github同理

  • 基于git clone命令,直接下载一个远程仓库的代码

  • 通过gitee上进行搜索进行克隆
    Git工具的使用(linux示例,windows类似),git,linux,windows

  • 根据提示使用对应的命令进行下载
    Git工具的使用(linux示例,windows类似),git,linux,windows

  • 示例:

# 1、拉取远程仓库代码
[root@docker-33 ~/gitProject]#git clone https://gitee.com/jumpserver/jumpserver.git
Cloning into 'jumpserver'...
remote: Enumerating objects: 108976, done.
remote: Counting objects: 100% (97788/97788), done.
remote: Compressing objects: 100% (26292/26292), done.
remote: Total 108976 (delta 70065), reused 95523 (delta 67868), pack-reused 11188
Receiving objects: 100% (108976/108976), 79.06 MiB | 535.00 KiB/s, done.
Resolving deltas: 100% (77556/77556), done.
# 2、进入项目目录进行查看
[root@docker-33 ~/gitProject]#cd jumpserver/
[root@docker-33 ~/gitProject/jumpserver]#ls
apps                CONTRIBUTING.md  Dockerfile-ee  jms          pyproject.toml  requirements   tmp
CODE_OF_CONDUCT.md  data             docs           LICENSE      README_EN.md    run_server.py  ui
config_example.yml  Dockerfile-ce    entrypoint.sh  poetry.lock  README.md       SECURITY.md    utils

# 3、通过git log会将所有提交代码的历史纪录全部展示出来
[root@docker-33 ~/gitProject/jumpserver]#git log
commit e428eb351bc04870b5de7b5032b096d6d6436552
Author: wangruidong <940853815@qq.com>
Date:   Thu Jan 11 19:07:54 2024 +0800

    feat: 同步ldap用户消息通知

commit 1275087f195041eb92985b816f7f09f002bf1741
Author: fit2bot <68588906+fit2bot@users.noreply.github.com>
Date:   Fri Jan 12 11:21:27 2024 +0800

    perf: 添加LC_ALL环境变量C.UTF-8 解决ansible无法初始化首选语言环境问题 (#12530)
    
    Co-authored-by: feng <1304903146@qq.com>

commit 311c01242be6dab6b74018c5fd96ec93d16a2e02
Author: feng <1304903146@qq.com>
Date:   Thu Jan 11 22:38:01 2024 +0800

    fix: 分页后排序失效 ....

# 4、此时可以通过 git log --oneline 略缩成一行
[root@docker-33 ~/gitProject/jumpserver]#git log --oneline
e428eb3 feat: 同步ldap用户消息通知
1275087 perf: 添加LC_ALL环境变量C.UTF-8 解决ansible无法初始化首选语言环境问题 (#12530)
311c012 fix: 分页后排序失效
bab5b67 fix: 修复自定义 applet 导入的 bug
3eb0b76 fix: 改密账号更新日期没有更新 (#12524)
6dcc74a fix: 账号备份只导出一条记录 (#12517)
2b15fc5 perf: 兼用处理一下 tree
df655f3 fix: 登录日志不显示
2522371 perf: 支持配置 RADIUS_ATTRIBUTES 属性
814dbeb fix: 解决手机号加密导致忘记密码判断总是失败问题
630bb56 fix: 解决手机号加密导致忘记密码判断总是失败问题
496b72a perf: 优化导入错误
b57e943 build(deps): 更新依赖版本
b4c1dd2 perf: slack消息解析优化-mistune升级
9ede367 perf: 邮箱支持exchange协议
2a29cd0 perf: 使用 nginx 处理静态资源
15ac81a perf: 优化标签绑定,仅绑定到资产上
eb5a53b perf: 翻译 (#12487)

  • 常用命令
创建git仓库  	git init 文件夹
查看状态  		git status
查看当前历史日志         git log         git log --oneline -4  # 查看前4行记录
跳转历史git      git reset --hard 46001fa # 46001fa 前面的版本号id
跳转上一次       git reset --hard HARD^
移除暂存区		git rm --cached xixixixix.sh 
使用git对文件重命名以及删除
				git rm 文件名
				git mv xixixixix.sh xixixixi.java
				git commit -m '重命名了 xixixi.sh 为xixix.java' 
git reflog命令用于显示Git仓库中的引用日志(reference logs),它记录了仓库中的引用(如分支、HEAD指针等)的变动历史。通过git reflog命令,您可以查看最近的引用变动记录,包括分支切换、提交、重置等操作,以便在需要时查找丢失的提交或恢复误操作的情况。
  • 补充

.gitignore 文件忽略文件不用被git管理

这个文件中可以定义那些文件或者目录被git工具所忽略 不被git管理

版本回退
git log可以查看历史版本记录
git reset --hard命令可以回退版本
git reset --hard HEAD^ 回退到上个版本
HEAD表示当前版版本
HEAD^  表示上1个版本
HEAD^^ 上2个版本

也可以直接git reset --hard 版本id号

这个时候就发现,git commit -m 所标记的注释信息非常重要了吧,可以让你自己知道到底回退到什么版本
撤销
- 直接删除就行,但是如果内容太多,你摸不清发生啥了呢?就没办法了
- 使用`git checkout -- 文件名`就可以直接撤销修改了
- 如果写乱了代码,添加暂存区但还没有commit提交。使用`git reset HEAD 文件名`取消暂存区添加,再`git checkout -- 文件名`来撤销修改
- 如果写乱了代码,添加暂存区并提交了。则使用版本回退
linux下git命令合集
yum install git -y  安装git

git --version  查看git版本

git config --system --list 查看系统所有linux用户的通用配置,此命令检查/etc/gitconfig

git config --global --list 查看当前linux用户的配置,检查~/.gitconfig文件

git config --local --list 查看git目录中的仓库配置文件,.git/config文件

git config --global user.name "jshan"  配置当前linux用户全局用户名,这台机器所有git仓库都会用这个配置

git config --global user.email "jshan@163.com"  配置当前linux用户全局邮箱

git config --global color.ui true 配置git语法高亮显示

git config --list 列出git能找到的所有配置,从不同的文件中读取所有结果

git config user.name  列出git某一项配置

git help 获取git帮助

man git man手册

git help config 获取config命令的手册

git分支实践

如下操作,我们是用本地仓库作为练习,创建分支,合并分支到master

切换分支

是在一个机器本地上操作

但是,同理玩法下,这个仓库,应该是由远程仓库提供,如在码云中的代码仓库

提供如master分支

zhangsan分支  张三推代码

bob 分支  鲍勃推代码

>最终他俩的代码合并到master
  • 默认版本仓库只有一个分支
git branch
直接看到当前版本仓库 有几个分支
以及有星星的哪个分支,就是你再用的

[root@tomcat-10 ~/springboot-bucket]#git branch
* master
# 创建分支
git branch liangliang
# 切换分支
git checkout liangliang
# 直接创建并切换分支
git checkout -b ww

# 不同分支的代码不能互相查看
# 合并分支 切换到主分支 进行代码拉取
git merge zhangsan

3、结合gitee使用

生成公钥添加到gitee上,windows同理

[root@docker-33 ~/gitProject]#ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:YISgxedpUUi6VFwT1SKeM0Iu0/yqGuOJtWmAhOsYDSk root@docker-33
The key's randomart image is:
+---[RSA 2048]----+
| .o+o=*o..       |
| o.oB.... .      |
|o.oB +oo .       |
|Eoo.O.=.         |
|++.+ o oS        |
|= .   .          |
|=o.  .           |
|+=oo.            |
|o=+.             |
+----[SHA256]-----+

# 查看公钥文件
[root@docker-33 ~/gitProject]#cat /root/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMIL8O9ZjF0HlyQNSSZoBdCp40LvDNLLMb0OA3EpLMZcHV1/25fSmojIRaFbmVcCK5jQfKN7UUzW+DsUffhjZjl8q82/OhdU8dwIIZaKqBp6SZvGGBYBbjxIswhc+NgyEaILSi2lYr7dKe32yFPteQQKE6DsJLwCFnLn1gsZ3szduzsP3/DJBbiu7Vsk+EvEqcrMkX8E7LclNSIabts+lZkNAI3LMykEDk26eKIcBT5OhbeVhlOLjq2TKxnAj0ktgHF8/UChMAuVbi64GGlDBBVYYufGsEaAzdqei7hfe1rO225tnWcv4EhyzMM4x4Lc+cGVM+MbYJ4M1gi5w96rGD root@docker-33

Git工具的使用(linux示例,windows类似),git,linux,windows
Git工具的使用(linux示例,windows类似),git,linux,windows

  • 按照上述添加上公钥
    Git工具的使用(linux示例,windows类似),git,linux,windows
  • 此时拉取自己账号中的开源或者私有的项目可以通过ssh拉取 windows一样的添加方式

4、idea结合gitee

  1. Idea配置Git客户端
    File — Settings—Version Control — Git
    关联Git安装目录下的bin/git.exe执行文件(这个就是git的客户端指令)
    Git工具的使用(linux示例,windows类似),git,linux,windows
  2. 下载gitee插件
    Git工具的使用(linux示例,windows类似),git,linux,windows
  3. 添加信息

注意:登录时,使用邮箱登录。
Git工具的使用(linux示例,windows类似),git,linux,windows

  1. 本地项目上传到服务器
    Git工具的使用(linux示例,windows类似),git,linux,windows
    Git工具的使用(linux示例,windows类似),git,linux,windows
  2. 选择上传的文件
    Git工具的使用(linux示例,windows类似),git,linux,windows
  3. 此时gitee上可以看见项目

5、idea提交代码 (示例使用2023版 其它版本类似,可能显示位置不一致)

  • 创建分支
    Git工具的使用(linux示例,windows类似),git,linux,windows
    Git工具的使用(linux示例,windows类似),git,linux,windows
  • 提交代码
    Git工具的使用(linux示例,windows类似),git,linux,windows
    Git工具的使用(linux示例,windows类似),git,linux,windows
  • 推送到远程仓库
    Git工具的使用(linux示例,windows类似),git,linux,windows
    Git工具的使用(linux示例,windows类似),git,linux,windows
  • 远程仓库查看
    Git工具的使用(linux示例,windows类似),git,linux,windows
  • 合并分支
    Git工具的使用(linux示例,windows类似),git,linux,windows
    Git工具的使用(linux示例,windows类似),git,linux,windows

Git工具的使用(linux示例,windows类似),git,linux,windows
Git工具的使用(linux示例,windows类似),git,linux,windows

  • 跳转到主页面master分支 发现合并成功
    Git工具的使用(linux示例,windows类似),git,linux,windows

6、.gitignore文件

HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**
!**/src/test/**

### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr

### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
/sql/local.sql

### VS Code ###
.vscode/

### mac ###
.DS_Store

# 接口文档发布 #
*-api/doc/deploy/*-doc

7、如果idea出现提交代码失败

检查推送的邮箱是否进行修改,如果勾选上不公开邮箱地址 那么就会出现推送失败
Git工具的使用(linux示例,windows类似),git,linux,windows文章来源地址https://www.toymoban.com/news/detail-848050.html

到了这里,关于Git工具的使用(linux示例,windows类似)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Linux工具】编译器、调式器、项目自动化构建工具以及git的使用3(GDB调试器的基础使用)

    作者:爱写代码的刚子 时间:2023.7.18 前言:本篇博客主要讲解Linux中调试器的使用,为之后的Linux编程打下坚固的基础。 背景 程序的发布方式有两种,debug模式(能被调试 )和release模式 Linux gcc/g++出来的二进制程序, 默认是release模式 要使用gdb调试,必须在源代码生成二进制程

    2024年02月17日
    浏览(36)
  • 【git】git常用指令(项目一般使用流程示例)

    本文记录github/gitlab上的项目怎么拉到本地、增加开发分支、合并主分支、推到仓库等过程。 1.设置 修改用户名 git config --global user.name “xxxx(新的用户名)” 修改密码 git config --global user.password “xxxx(新的密码)” 修改邮箱 git config --global user.email “xxxx@xxx.com(新的邮箱)” 2.查看

    2024年02月11日
    浏览(28)
  • Git 版本管理使用-介绍-示例

    以下是Git的基本概念和使用方式: 仓库(Repository):Git使用仓库来存储代码的历史变更记录,包括所有的代码文件和版本信息。一个Git仓库可以存储在本地计算机或者远程服务器上。 分支(Branch):Git允许程序员在同一个仓库中创建多个不同的分支,每个分支可以包含不同

    2024年02月14日
    浏览(29)
  • 【Linux】Linux环境基础开发工具的使用 ———(yum、vim、gcc&g++、gdb、make/Makefile、进度条 、git)

    (꒪ꇴ꒪(꒪ꇴ꒪ )🐣,我是 Scort 🎓 🌍博客主页:张小姐的猫~江湖背景🌍 快上车🚘,握好方向盘跟我有一起打天下嘞! 送给自己的一句鸡汤🤔: 🔥集中起来的意志可以击穿顽石🔥 🙏作者水平很有限,如果发现错误,可在评论区指正,感谢🙏 🎉🎉欢迎持续关注!🎉🎉

    2024年01月16日
    浏览(40)
  • 【DevOps 工具链】在Windows上搭建小型Git服务

    综上,选择了Gitea作为Git服务器。Gitea是采用Go作为后端语言,并且他还支持跨平台,支持 Linux、macOS 和 Windows 以及各种架构,除了x86,amd64,还包括 ARM 和 PowerPC。后期如果购买服务器,做数据移植也方便。Gitea一个git管理工具,类似构建自己的github,但是github仓库需要公开要

    2024年02月04日
    浏览(25)
  • Windows系统git clone Linux内核git仓库的系列问题

            当我们在Windows系统的电脑上试图拉取Linux内核git仓库时,由于Windows和Linux的不兼容会遇到很多问题。踩过好几个坑后,我将针对遇到的问题提出解决方案,并给出完成这项工作的避雷方式。         Linux内核git仓库:         由于以下有些配置仅对新创建子文件

    2024年02月07日
    浏览(35)
  • 【linux】git和gdb调试工具

    这两个步骤用于识别提交代码的身份,一个你的名字,一个你的邮箱 开启本地仓库 克隆本地仓库成功 我们将这个仓库拷到了111目录底下. 我们发现少了一个.gitignore,因为.gitignore是隐藏文件,所以使用ls -la查看 用于查看提交状态 上面可以看到提交人的信息,以及时间,以及提

    2024年02月22日
    浏览(30)
  • 【Linux】分布式版本控制工具git

    ​ ​📝个人主页:@Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:Linux 🎯 长路漫漫浩浩,万事皆有期待 上一篇博客:【Linux】Linux调试器 - gdb 大家可能用过 Github, Gitee 等代码托管平台。实际上这些平台都是可以通过 git 来进行管理的,而 git 本身

    2024年02月07日
    浏览(35)
  • Linux 用户必备的 Git 图形化工具

    Git 是一个免费的开源分布式版本控制系统,用于软件开发和其他几个版本控制任务。它旨在根据速度、效率和数据完整性来处理从小到大的项目。 Linux 用户主要可以通过命令行管理 Git,但是,有几个图形用户界面 (GUI) Git 客户端可以促进在 Linux 桌面上高效、可靠地使用 Gi

    2024年02月03日
    浏览(28)
  • Linux基础——Linux开发工具(make/makefile,git)

    前言:在经过前面两篇学习,大家对Linux开发工具都有一定的了解,而在此之前最重要的两个工具就是vim,gcc。 如果对这两个工具不太了解,可以先阅读这两篇文章: Linux开发工具 (vim) Linux开发工具 (gcc/g++) 首先让我们来初步了解一下本篇的目标: 1. 学习make/makefile,并能简单

    2024年04月27日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包