Git下载安装及常用命令使用

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 集中化的版本控制系统都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。其缺点是中央服务器的单点故障。如果服务器宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。

前言


之前在公司管理项目都是使用的SVN,SVN是集中式版本控制工具。


集中化的版本控制系统都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。其缺点是中央服务器的单点故障。如果服务器宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。


然而Git就不存在这样的缺点,可以这么说吧,Git是目前世界上最先进的分布式版本控制系统(没有之一)


一、Git概述及安装


1、Git概述


Git 是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。

像 Git 这种分布式版本控制工具,客户端提取的不是最新版本的文件快照,而是把代码仓库完整地镜像下来(本地库)。这样任何一处协同工作用的文件发生故障,事后都可以用其他客户端的本地仓库进行恢复。因为每个客户端的每一次文件提取操作,实际上都是一次对整个文件仓库的完整备份。


分布式就是每个人手里都有一份自己的历史记录,而集中式只是集中服务器上有所有人的记录

工作区:本地存放代码的位置,存放本地写的代码

暂存区:临时存储,可将工作区的代码添加(add)到暂存区

本地库:将暂存区的代码提交(commit)到本地库后才会生成历史版本


工作区和暂存区的代码是可以被删掉的,没有历史记录和历史版本

代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库。

可以使用push将本地库的代码推送到远程库


2、Git下载及安装


1、下载地址:Git官网

2、安装时除了安装路径以及此页面外其余均保持默认即可

系统建议是选择第二个,第二个意味着我们可以在第三方软件以及windows cmd命令行使用Git,但是选择第二个会修改环境变量,一般我们不会用,所以选择第一个即可

安装成功后鼠标右键选择Git Bash Here可以进行Git的命令操作


二、Git常用命令



1、使用前配置(git config --global xx)


git config --global user.name 用户名
git config --global user.email 邮箱

设置用户签名:签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。Git 首次安装必须设置一下用户签名,否则无法提交代码。

想更改这些信息时,可以直接编辑设置文件“~/.gitconfig”。这里设置的姓名和邮箱地址会用在Git的提交日志中。由于在GitHub上公开仓库时,这里的姓名和邮箱地址也会随着提交日志一同被公开,所以请不要使用不便公开的隐私信息。

将color.ui设置为auto可以让命令的输出拥有更高的可读性。

git config --global color.ui auto

在Git bash中输入这些指令后

在Windows C:\Users\用户名 目录下有个.gitconfig的文件会记录这些信息


2、初始化本地库(git init)


让git获得目录的管理权。

git init

建议直接从需要操作的目录中进入git bash

设置查看文件夹选项->显示隐藏的文件夹,此时可以在文件夹下看到.git文件夹

注:git bash中的命令是和linux通用的

.git目录里存储着管理当前目录内容所需的仓库数据。在Git中,我们将这个目录的内容称为“附属于该仓库的工作树”。


3、查看本地库状态(git status)


git status

在主分支下,当前没有提交(空)


4、本地文件添加到暂存区(git add xx)


1、先创建一个本地文件hello.txt,并写入hello git!内容

vim hello.txt

:wq保存

2、查看本地库状态

git status

未追踪的文件

3、本地文件添加到暂存区

git add hello.txt

git默认转换了换行符

查看本地库状态

git status

此时文件存在于工作区&暂存区。是可以删除且不显示历史版本的 (use “git rm --cached …” to unstage)

执行下述指令后,只删除了暂存区的,工作区依然存在

git rm --cached hello.txt

如果不改变暂存区的文件,只把工作区文件删除(选中文件->右键->删除):

git会记录操作历史,可以用git restore xx恢复文件或手动将其从缓存区删除

git restore hello.txt


5、提交本地库,形成历史版本(git commit -m xx)


1、git commit命令可以将当前暂存区中的文件实际保存到仓库的历史记录中。

git commit -m "版本日志" 文件名

48f8429是版本

git status

2、当文件夹中所有文件都提交到本地库后,查看本地库状态,显示没有需要提交的

3、查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作

git reflog

此时指针指向第一个版本

4、查看详细日志不仅可以看到不同版本,还能看到是谁提交的(显示用户签名),此时显示的版本号是完整的版本号

git log


6、修改文件


模拟企业中版本和代码的迭代

vim hello.txt
git status

修改文件后查看状态,可以看到修改记录,但此次修改还未加入暂存区:

git commit -m "my 2nd commit" hello.txt
git reflog


git是按行维护文件的,修改了其中的一行就会显示一行被修改(把修改之前的删掉,插入修改之后的):


此时指针指向第二个版本


7、历史版本及版本穿梭(git reset --hard xx)


1、查看历史版本

git reflog //查看版本信息(显示的版本号是精简版的)
git log //查看版本详细信息(显示完整版本号)
git log --pretty=short //仅显示第一行简述信息
git log --graph //可视化显示版本信息


只要在git log命令后加上目录名,便会只显示该目录下的日志。如果加的是文件名,就会只显示与该文件相关的日志。


git log命令只能查看以当前状态为终点的历史日志

git reflog命令可以查看当前仓库的操作日志。

git log hello.txt //查看关于该文件的改动
git log -p hello.txt //查看该文件改动前后的差别

git diff查看工作树、暂存区、最新提交之间的差别。

执行git diff命令,如果工作树和暂存区的状态并无差别,什么都不会显示

要查看与最新提交的差别,执行git diff HEAD


2、版本穿梭(回溯历史版本)

如果想要切换到之前的版本,可以先查看对应的版本号

git reflog
git reset --hard 48f8429
git reflog

打开.git文件夹下的HEAD文件,可以看到ref: refs/heads/master,表明指针指向master,目前处在master分支上

打开".git\refs\heads\master"文件可以看到当前指向的提交版本的哈希值。

版本穿梭会直接刷新工作区当前的文件内容

Git 切换版本,底层其实是移动的 HEAD 指针,而不是创造很多副本


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
4月前
|
存储 开发工具 git
|
25天前
|
缓存 Java Shell
[Git]入门及其常用命令
本文介绍了 Git 的基本概念和常用命令,包括配置、分支管理、日志查看、版本回退等。特别讲解了如何部分拉取代码、暂存代码、删除日志等特殊需求的操作。通过实例和图解,帮助读者更好地理解和使用 Git。文章强调了 Git 的细节和注意事项,适合初学者和有一定基础的开发者参考。
43 1
[Git]入门及其常用命令
|
4月前
|
开发工具 git
【GIT 第二篇章】GIT常用命令
Git常用命令涵盖初始化、状态管理、提交、分支处理、远程操作等关键流程。`git init`启动本地仓库,`git clone`下载远程仓库。通过`git status`和`git diff`检查工作状态与差异。利用`git add`暂存文件,`git commit`保存更改。借助`git branch`、`git checkout`、`git merge`和`git rebase`管理分支。使用`git fetch`、`git pull`和`git push`同步远程仓库。通过`git reset`、`git revert`和`git checkout`实现版本回退。
71 0
|
2月前
|
开发工具 git
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令
这篇文章是关于Git常用命令的总结,包括初始化配置、基本提交、分支操作、合并、压缩历史、推送和拉取远程仓库等操作的详细说明。
120 1
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令
|
2月前
|
缓存 网络安全 开发工具
全面掌握 Git 和 Gitee:从安装到上传的完整指南
本文档介绍了如何安装和配置Git,以及如何与Gitee进行连接。首先从官网下载Git并安装,接着配置用户名和邮箱,生成SSH密钥并将其添加到Gitee账户,完成无密码登录的设置。文档还提供了基本的命令使用指南,包括文件操作、Git命令和gitee代码上传流程,最后讲解了提交信息的规范格式和回滚操作的方法。
219 1
|
29天前
|
开发工具 git 开发者
|
29天前
|
开发工具 git 开发者
提升Git效率:掌握这5个高级命令
【10月更文挑战第17天】
45 0
|
3月前
|
存储 Linux 开发工具
掌握 Git 命令:每个开发者的必备技能
无论团队项目还是个人开发,掌握 Git 命令都是必备技能。本文介绍 Git 的基本概念与命令,如初始化仓库 (`git init`)、添加文件 (`git add`)、提交更改 (`git commit`)、检出分支 (`git checkout`)、合并分支 (`git merge`) 等,还分享了高级技巧如查看差异 (`git diff`)、撤销提交 (`git revert`)、修复合并冲突 (`git mergetool`) 和使用别名简化命令 (`git config --global alias.ci commit`)。
|
3月前
|
机器学习/深度学习 Shell 开发工具
Python使用管道执行git命令报错|4-7
Python使用管道执行git命令报错|4-7
|
3月前
|
存储 Linux 开发工具
Git基础命令,分支,标签的使用【快速入门Git】
本文详细介绍了Git版本控制系统的基础概念和常用命令,包括工作区、暂存区和版本库的区别,文件状态的变化,以及如何进行文件的添加、提交、查看状态、重命名、删除、查看提交历史、远程仓库操作和分支管理,还涉及了Git标签的创建和删除,旨在帮助读者快速入门Git。
Git基础命令,分支,标签的使用【快速入门Git】