版本控制之Git 修炼手册

简介: Git 是一款免费的分布式版本控制工具,关于git 的常用基础知识。

0x01 什么是Git ?

Git是一个免费的开源 分布式版本控制系统,旨在快速,高效地处理从小型到大型项目的所有事务。
Git 易于学习, 占用存储区域小,具有闪电般快速的性能。
它超越了Subversion,CVS,Perforce和ClearCase等SCM工具,具有廉价本地分支,便捷的临时区域和 多个工作流程等功能。

SVN 是一款免费的集中式版本控制工具,Git 是一款免费的分布式版本控制工具

分布式和集中式的区别:

  • 集中式开发——单个中心仓库:将项目集中存放在中央服务器中,在工作的时候,大家只在自己电脑上操作,从同一个地方下载最新版本,然后开始工作,做完的工作再提交给中央服务器保存。一旦服务器挂掉,便无法继续工作。
    image
  • 分布式开发——多个中心仓库:只要提供一台电脑作为版本集中存的服务器放就够了,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它也一样干活,只是交换修改不方便而已。
    image

0x02 如何安装Git?

下载Git客户端

https://git-scm.com/download/

打开上面这个链接后,选择适合自己电脑操作系统的平台进行下载

Tips: 如果是windows 操作系统,请注意查看是32 位(x86)还是64位(x64)

image

可选:下载第三方GUI工具

虽然Git中带有内置的GUI工具(git-gui,gitk),但有几种第三方工具可供用户寻找特定于平台的体验。

也就是说如果你对Git 自带的GUI 工具不是很满意,官网也提供了好几种第三方Git GUI图形用户界面操作工具。

所有Git GUI 可选下载地址:https://git-scm.com/downloads/guis

这里我将简单介绍下最常用的两种:

GitHub Desktop

这个是Github 官方支持的Git 图形用户界面操作工具

TortoiseGit

这个用过SVN的应该很熟悉,大致效果就是这个样子
image

0x03 Git 配置SSH 认证

在使用git 实际开发中,我们使用SSH认证的较多也更加安全,也是非常推荐的做法。

啰嗦三句话:

  • 君子性非异也,善假于物也。
  • 初学命令要学,但实际开发能用工具高效搞定的就用工具
  • 我们这里借助Eclipse工具,非常稳定和方便

SSH 认证支持两种,一种是DSA,一种是RSA

区别就是:DSA 用于签名,而 RSA 可用于签名和加密。

1.打开我们的STS(Eclipse的衍生版本)

image
2.生成并保存DSA(这一步非必要,因为大多数用的是RSA)

image
生成后默认保存路径是

C:\Users\fairy\.ssh

你将会发现多了两个文件
image

3.生成并保存RSA

image
生成后默认保存路径是

C:\Users\fairy\.ssh

你将会发现多了两个文件

image
4.复制RSA公钥
RSA公钥就是id_rsa.pub文件中的内容
5.添加到Github(Bitbucket或者其他代码托管平台)用户设置里面的SSH中
如果是GitHub 就这样
image
如果是Bitbucket 就像这样:
image

0x04 Git学习手册

官方提供了一个常用手册:Git 快速指南手册

4.1 配置工具

为所有的本地仓库配置用户信息

1. 设置Git 提交时显示的用户名称

 git config --global user.name "[name]"

Tips: 设置要附加到提交事务的名称,为了知道是谁提交的代码

2. 设置Git 提交时显示的用户邮箱

git config --global user.email "[email address]"

Tips:设置要附加到提交事务的电子邮件,为了方便联系到代码提交人

3. 设置命令行显示颜色

 git config --global color.ui auto

Tips: 启用命令行输出的有用颜色,为了冲突,已修改,多颜色显示。

4.2 管理仓库

如果远程仓库项目还没有初始化:

cd existing_folder
git init
git remote add origin [url]
git add .
git commit -m "init project"
git push -u origin master

Tips:
cd existing_folder------------------- 进入存在的文件夹
git init ---------------------------------- git 初始化,会生成隐藏文件.git
git remote add origin [url]---------- git 远程仓库定义别名
git add .------------------------------- git 添加当前路径下所有文件
git commit -m "init project"---------------------------- git 提交到本地库
git push -u origin master----------- git提交到远程仓库

Tips:
如果执行命令git push -u origin master 失败,则可能是由于仓库已经初始化了一个readme.md, 因为冲突导致提交失败。

这时候需要先执行命令获取最新的代码

git fetch origin master

然后执行合并命令

git merge origin master

最后执行命令提交

git push -u origin master----------- git提交到远程仓库

如果远程仓库项目已经初始化完成,我们只需要下载项目后修改文件并提交即可

git clone [url]
cd ProjectName
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master

Tips:
git clone [url] ------------------------- 下载仓库命令
cd ProjectName ---------------------- 进入项目文件夹
touch README.md------------------- 新建一个md格式的markdown > 文件
git add README.md------------------添加指定文件到版本控制
git commit -m "add README" ------提交到本地提交缓存库
git push -u origin master-------------提交到远程仓库

4.3 常用命令讲解

4.3.1 创建仓库

创建一个新的本地仓库

$ git init [project-name]

Tips:创建具有指定名称的新本地存储库

从现有URL获取仓库

 git clone [url]

Tips:下载项目及其整个版本历史记录

4.3.2 部分文件改变

查看编辑并制作提交事务

列出所有的改动状态

git status

Tips: 列出要提交的所有新文件或已修改文件

文件添加到版本控制

 git add [file]

Tips: 快照文件以准备版本控制

版本比较

git diff --staged

Tips:显示和上一个文件版本之间的文件差异

文件取消版本控制

git reset [file]

Tips:取消暂存文件,但保留其内容

提交代码并添加改动说明

git commit -m "[descriptive message]"

Tips: 在版本历史记录中永久记录文件快照

4.3.3 分支改变

命名一系列提交并组合完成的工作,

列出当前存储库中的所有本地分支

git branch

创建一个新的分支

git branch [branch-name]

切换到指定的分支并更新工作目录

git checkout [branch-name]

将指定分支的历史记录合并到当前分支中

git merge [branch]

删除指定的分支

git branch -d [branch-name]

4.3.4 重构文件名

重新定位和删除版本化文件

从工作目录中删除该文件并分阶段删除

git rm [file]

从版本控制中删除该文件,但在本地保留该文件

git rm --cached [file]

更改文件名并准备提交

git mv [file-original] [file-renamed]

4.3.5 保存碎片

废弃并恢复不完整的更改

临时存储所有已修改的跟踪文件(即已添加到版本控制的文件)

git stash

恢复最近隐藏的文件

git stash pop

列出所有隐藏的变更集

git stash list

丢弃最近隐藏的变更集

git stash drop

4.3.6 查看提交记录

浏览并检查项目文件的演变

列出当前分支的版本历史记录

git log

列出文件的版本历史记录,包括重命名

git log --follow [file]

显示两个分支之间的内容差异

git diff [first-branch]...[second-branch]

输出指定提交的元数据和内容更改

git show [commit]

4.3.7 覆盖提交

擦除错误和替换历史记录

Tips:
有时候不小心把配置文件中的数据库密码错误提交到公开库中,这时需要这个操作。

在[commit]之后撤消所有提交,在本地保留更改

git reset [commit]

丢弃所有历史记录并更改回指定的提交

git reset --hard [commit]

4.3.8 同步改动

注册存储库书签并交换版本历史记录

从存储库书签下载所有历史记录

git fetch [bookmark]

将书签的分支合并到当前的本地分支中

git merge [bookmark]/[branch]

将所有本地分支提交上传到GitHub

git push [alias] [branch]

下载书签历史记录并包含更改

 git pull

4.4 Eclipse Git 常用命令解释

Git Commit 将本地修改保存到本地仓库中

Git Push 将本地仓库修改推送到服务器上的仓库中

Git Commit and Git Push 提交到本地仓库后再提交到服务器仓库

Git Fetch 相当于是从远程获取最新版本到本地,不会自动merge

git merge 远程仓库与本地仓库合并

Git Pull 相当于是从远程获取最新版本并merge到本地= Git Fetch and Merrge

本篇完~


更多参考:

廖雪峰的 Git 在线教程

Git 的基础内容的学习

相关文章
|
23天前
|
存储 开发工具 数据安全/隐私保护
「Mac畅玩鸿蒙与硬件9」鸿蒙开发环境配置篇9 - 使用 Git 进行版本控制
在 HarmonyOS 项目开发中,Git 版本控制可以帮助开发者规范地管理代码变更,确保协作流程顺畅。本篇将详细介绍从创建项目、提交代码到 Git 远程仓库,再到修改、推送更新的完整操作流程,重点演示如何使用 Git 和 GitHub 进行身份验证和版本管理。
61 3
「Mac畅玩鸿蒙与硬件9」鸿蒙开发环境配置篇9 - 使用 Git 进行版本控制
|
1月前
|
Linux 开发工具 git
掌握 Git:版本控制的艺术
Git 是由 Linus Torvalds 开发的分布式版本控制系统,广泛用于代码管理和团队协作。其核心价值在于分布式特性、数据完整性和支持非线性开发。本文介绍 Git 的安装、仓库初始化、文件管理、分支管理、远程仓库操作及撤销操作等基础与高级技巧,助你掌握版本控制的艺术。通过实践,你将能更高效地利用 Git 进行代码管理和团队协作。
|
9天前
|
测试技术 持续交付 开发工具
Git版本控制在团队协作中具有重要作用
Git版本控制在团队协作中具有重要作用
16 1
|
26天前
|
Ubuntu 开发工具 git
Git高手必备:掌握这些版本控制最佳实践,让你的代码管理效率翻倍!
【10月更文挑战第25天】使用 Git 进行版本控制是现代软件开发的重要部分。本文详细介绍了 Git 的安装、配置、基本操作、分支管理、冲突解决及常用命令,帮助开发者提高工作效率,确保代码质量和团队协作的顺利进行。通过合理使用 Git,可以有效管理代码变更,支持多人协作,并追踪历史记录。
61 4
|
26天前
|
开发工具 C# git
C#一分钟浅谈:Git 版本控制与 GitFlow 工作流
【10月更文挑战第22天】本文介绍了 Git 和 GitFlow 的结合使用,从基础概念到具体操作,涵盖了安装配置、基本命令、GitFlow 工作流的核心分支和流程示例。同时,文章还讨论了常见的问题和易错点,如忽略文件、冲突解决、回退提交和分支命名规范,并提供了代码案例。通过学习本文,读者可以更好地理解和应用 Git 及 GitFlow,提高团队协作效率。
47 1
|
16天前
|
开发工具 git
掌握Git版本控制,提升团队协作效率
掌握Git版本控制,提升团队协作效率
|
2月前
|
存储 Linux 开发工具
掌握版本控制的艺术:Git 技巧深度解析
在软件开发中,版本控制对于代码管理和团队协作至关重要。Git 作为最流行的分布式版本控制系统,凭借其强大的功能和灵活性成为开发者必备工具。本文深入探讨 Git 的高级技巧和最佳实践,包括交互式暂存、撤销提交、合并冲突处理等,帮助你更高效地使用 Git。通过遵循清晰的提交信息、保持提交原子性、利用分支开发等最佳实践,开发者可以更好地管理代码库,提升协作效率。
|
25天前
|
开发工具 git 开发者
|
1月前
|
编译器 开发工具 数据安全/隐私保护
Git——多人协作/版本控制,在一个gitee仓库下开发(Gitee版教程)手把手教学,包好用的!
本文提供了一个关于如何在Gitee上进行多人协作和版本控制的详细教程,包括新建和初始化仓库、克隆仓库、邀请好友共同管理仓库以及注意事项,旨在帮助用户顺利进行代码协作开发。
239 0
Git——多人协作/版本控制,在一个gitee仓库下开发(Gitee版教程)手把手教学,包好用的!
|
2月前
|
存储 Linux 开发工具
掌握 Git:版本控制的瑞士军刀
在软件开发中,版本控制对于代码管理和团队协作至关重要。Git 是一款由 Linus Torvalds 开发的分布式版本控制系统,广泛应用于各类项目。本文介绍了 Git 的基本原理、核心概念及常用命令,如初始化仓库 (`git init`)、克隆 (`git clone`)、提交 (`git commit`) 和合并 (`git merge`) 等。此外,还分享了编写清晰提交信息、使用分支开发和定期合并等最佳实践,帮助开发者更高效地使用 Git。