版本控制之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 的基础内容的学习

相关文章
|
6天前
|
项目管理 开发工具 git
Python面试题:Git版本控制与协作开发
【4月更文挑战第19天】本文聚焦于Python面试中Git版本控制与协作开发的考察点,涵盖Git基础、协作流程及实战示例。面试者需理解仓库、提交、分支等核心概念,掌握常用命令,熟悉主干开发和GitFlow策略。在协作开发中,要掌握Pull Request工作流,有效处理合并冲突,并善用标签与里程碑。注意避免混淆工作区、忽视代码审查和直接在远程分支上工作等常见错误。通过实例展示了如何在GitFlow策略下合并分支和解决冲突,强调持续学习与实践以提升Git技能。
27 1
|
6天前
|
数据采集 开发工具 git
《Git 简易速速上手小册》第2章:理解版本控制(2024 最新版)
《Git 简易速速上手小册》第2章:理解版本控制(2024 最新版)
30 2
|
6天前
|
开发工具 git 开发者
Git常用命令大全:让你轻松驾驭版本控制
Git命令速查:`git init`新建仓库,`git clone`克隆,`git add`入暂存区,`git commit -m`提交,`git status`查看状态,`git log`查看历史,`git branch`创建分支,`git checkout`切换,`git merge`合并,`git pull`拉取更新,`git push`推送,`git remote -v`查看远程,`git checkout --`撤销本地修改,`git reset HEAD`取消暂存,`git reset --hard`回退版本。掌握这些,提升代码管理效率!
24 0
|
6天前
|
存储 前端开发 开发工具
前端开发中的Git版本控制:构建可靠的协作和代码管理
前端开发中的Git版本控制:构建可靠的协作和代码管理
51 0
|
6天前
|
项目管理 开发工具 git
版本控制与源代码管理:在 Visual Basic 项目中使用 Git
【4月更文挑战第27天】本文介绍了在Visual Basic项目中使用Git进行版本控制和源代码管理的重要性。Git作为一个流行的分布式版本控制系统,具备分布式架构、高效性能和强大分支管理等特点。在项目中,需先安装Git,然后初始化仓库、添加文件和提交更改。常用操作包括查看状态、日志、创建及切换分支和合并分支。团队协作时,借助远程仓库和推送拉取命令实现代码共享。虽然Git有学习曲线,但其优势在于强大的功能、灵活性和社区支持,能提升开发效率和代码质量。通过学习和实践,开发者可充分利用Git优化协作和项目管理。
|
6天前
|
开发工具 git 开发者
Git入门:轻松掌握版本控制的艺术
【5月更文挑战第13天】Git是流行的版本控制系统,适合各种规模的项目。本文引导读者入门Git,学习版本控制艺术。内容涵盖Git简介、安装配置、基础操作(如初始化、添加文件、提交、查看状态和历史)、分支管理、协作开发(克隆、推送、拉取)及高级用法,如标签管理、子模块和版本比较。遵循最佳实践,如频繁提交、有意义的提交信息和合理分支管理,可提升开发效率。
|
6天前
|
前端开发 持续交付 开发工具
【专栏:工具与技巧篇】版本控制与Git在前端开发中的应用
【4月更文挑战第30天】Git是前端开发中的必备工具,它通过分布式版本控制管理代码历史,支持分支、合并、回滚等操作,促进团队协作和冲突解决。在前端项目中,Git用于代码追踪、代码审查、持续集成与部署,提升效率和质量。优化协作包括制定分支策略、编写清晰提交信息、定期合并清理分支及使用Git钩子和自动化工具。掌握Git能有效提升开发效率和代码质量。
|
6天前
|
存储 项目管理 开发工具
Git 版本控制:构建高效协作和开发流程的最佳实践
版本控制是软件开发的核心,促进团队协作与项目管理。通过制定明确的分支命名策略,遵循一致的代码提交规范,如指明提交类型和简短描述,增强了历史记录的可读性,可以清晰地组织和理解项目的结构与进展。
23 0
Git 版本控制:构建高效协作和开发流程的最佳实践
|
6天前
|
存储 开发工具 git
Git处理版本控制
【4月更文挑战第17天】Git处理版本控制
12 0
|
6天前
|
存储 开发工具 git
Git大揭秘:掌握开发者必备的常用命令手册
Git大揭秘:掌握开发者必备的常用命令手册
17 0
Git大揭秘:掌握开发者必备的常用命令手册

相关实验场景

更多