物善其用:打破使用界限,人人皆可用Git

385 阅读6分钟

作者:洋一
原文:mp.weixin.qq.com/s/hEziUpQy9…

零. 开场白

你好,我是洋一,一个持续向上生长的互联网人。

来杭州工作的时候,第一家公司是做 B2B 数据交易类相关的企业,投资人是山东某头部公司。每周晨会上,老板都会组织各部门同事一起解读《论语》,包括母公司六七百人的年会上,使用的抽奖系统的话术都是《论语》片段。传播孔子文化,当属山东第一!

在孔子的《论语·卫灵公》提到过:"工欲善其事,必先利其器!",意思是一个做手工或工艺的人,要想把工作做好,做得漂亮,应该先把工具准备好。

在现实工作生活中,我们经常会使用一些简单实用的工具,帮助我们解决繁杂琐碎的工作,从而让我们能集中经历去做更有挑战的事情。举个例子,如果你是软件开发人员,你可能希望有一个工具能帮助你把某时间段新增的代码都能记录下来;如果你是文字创作家,你希望能把自己不同版本的稿子都能保存下来,想要查看某个版本的情况,只需要翻看每次改动的记录即可,从而摆脱手动管理带来的困扰!

你凌乱吗?

所以,看到了吧!在各行各业都有需要版本管理和多人协作的情况,不仅仅是程序员。这两年比较火的在线文档管理平台,比如"腾讯文档"、"语雀"、各种云上笔记等,都是实实在在的帮助人们解决生活痛点。说实话,程序员其实都挺懒的,能用工具解决的,绝不动手做!没有合适的工具怎么办?程序员的同学会告诉你:让我们一起用代码改变世界吧!

一. 创建一个Git版本库

在第二篇 安装配置:搭建Git环境,快来体验! 中,我们介绍如何安装 Git 环境,感兴趣的朋友可以去尝试搭建一下,今天我们主要介绍一下利用 Git 如何托管我们的代码并对其进行版本控制。同时,我们也会简单介绍一下,如果你不是程序员,你该怎么去管理你的文件,比如:电子书籍、教程文档、照片等。让你真真切切地利用它来提高你的工作效率。

掌握幸福密码,从关注你好洋一开始!你学会了吗?

  1. 创建Git版本库的两种方式:

方式1:对已有的项目初始化Git版本库

我们一般会先创建一个项目 demo4git,进入到该项目的目录下,然后使用命令 git init 进行初始化

bamawdeMacBook-Pro:demo4git bamaw$ pwd
/Users/bamaw/workspace/demo4git
bamawdeMacBook-Pro:demo4git bamaw$ ls -l
total 72
-rw-r--r--  1 bamaw  staff    891 12 21 00:01 HELP.md
-rw-r--r--  1 bamaw  staff   8049 12 21 00:02 demo4git.iml
-rwxr-xr-x  1 bamaw  staff  10070 12 21 00:01 mvnw
-rw-r--r--  1 bamaw  staff   6608 12 21 00:01 mvnw.cmd
-rw-r--r--  1 bamaw  staff   1438 12 21 00:01 pom.xml
drwxr-xr-x  4 bamaw  staff    128 12 21 00:01 src
bamawdeMacBook-Pro:demo4git bamaw$ git init
已初始化空的 Git 仓库于 /Users/bamaw/workspace/demo4git/.git/
bamawdeMacBook-Pro:demo4git bamaw$ ls -al
total 80
drwxr-xr-x  12 bamaw  staff    384 12 21 00:05 .
drwxr-xr-x  18 bamaw  staff    576 12 21 00:01 ..
drwxr-xr-x   9 bamaw  staff    288 12 21 00:05 .git
drwxr-xr-x   3 bamaw  staff     96 12 21 00:01 .mvn
-rw-r--r--   1 bamaw  staff    891 12 21 00:01 HELP.md
-rw-r--r--   1 bamaw  staff   8049 12 21 00:02 demo4git.iml
-rwxr-xr-x   1 bamaw  staff  10070 12 21 00:01 mvnw
-rw-r--r--   1 bamaw  staff   6608 12 21 00:01 mvnw.cmd
-rw-r--r--   1 bamaw  staff   1438 12 21 00:01 pom.xml
drwxr-xr-x   4 bamaw  staff    128 12 21 00:01 src

该命令执行之后,是告诉我们,我本 Git 已经接管了你这块区域(言外之意:托管了你的代码),后续这个区域的花花草草要是有个变动,你都得找我报备一下,记得吗!!!

言外之意:后续代码有任何变动,都可以作为一个版本提交到 Git 上,由 Git 帮助你管理每个版本的代码

我们可以发现,在执行完 git init 命令后,在当前目录中创建了一个 .git 隐藏目录,该隐藏目录包含了 Git 所有的文件数据,可以理解为每个版本的代码都会存储在 .git 的隐藏目录下,每个版本代表一个独立的文件。

到现在,我们已经把你的项目已经 Git 初始化了,但是 Git 还没有开始对你的项目进行版本控制,如果你需要,需要再执行以下命令:

1.1 添加命令
  • 单文件添加命令
git add xxx
# 示例
bamawdeMacBook-Pro:demo4git bamaw$ git add Demo4gitApplication.java
  • 多文件添加命令
git add xxx yyy xxx
  • 通配符添加命令
git add *.go
  • 全量添加命令
#任何目录执行都会提交相应文件
git add --all
# 提交当前目录下的所有文件或者子目录下的文件
git add .
1.2 提交命令
git commit -m "描述本次提交的介绍信息,方便后续追踪"

执行完 添加提交 命令后,实际上就已经将项目代码当前的版本提交到 Git 上并保存到 .git 目录,后续的代码或者内容变更,Git 会帮助我们跟踪好!让我们看看具体操作:

bamawdeMacBook-Pro:demo4git bamaw$ git add .
bamawdeMacBook-Pro:demo4git bamaw$ git commit -m "这片区域你接管吧!"
[master(根提交) c360867] 这篇区域你接管吧!
 1 file changed, 13 insertions(+)
 create mode 100644 src/main/java/com/pangtai/demo4git/Demo4gitApplication.java
bamawdeMacBook-Pro:demo4git bamaw$

方式2:克隆一个Git版本库到本地

克隆仓库常用于项目初期,我们用它将远程仓库完全克隆下来,这里有了新的知识点,远程仓库的概念,后续会给大家详细介绍,这里先简单提下。一般我们会采用 SSH方式 或者 HTTPS 的方式进行克隆。

我们使用 命令 git clone 从现有远程仓库中克隆拷贝:

  • 克隆指定远程仓库
git clone <repo>
  • 克隆指定远程仓库到指定的本地目录
git clone <repo> <directory>

二. 注意事项

很多情况,我们不需要对项目所有的代码或者文件都要进行追踪其版本变更的情况,尤其是对一些自动生成的文件,比如:maven生成的target目录下的东西、日志文件等。有没有什么好的办法呢?我们说,你能想到的,大佬肯定想到了,你没想到的,大佬也会替你想到怎么做!

我们可以手动创建一个 .gitignore 文件,在文件里面,可以放入不需要被 Git 托管的目录或文件。当然,现在 IDE 在创建项目的时候都会默认为你创建好并且给你提前预置一些配置。

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

### 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/
!**/src/main/**/build/
!**/src/test/**/build/

### VS Code ###
.vscode/

到这里为止,我们就已经对这个项目的所有代码或者文件进行了初始化版本控制。你学会了吗?

三. 实战教你文档管理

1. 使用 github/gitee创建远程仓库 treasure-box(百宝箱)

2. 创建本地文件

bamawdeMacBook-Pro:treasure-box bamaw$ pwd
/Users/bamaw/growth/treasure-box

3. Git本地初始化

bamawdeMacBook-Pro:treasure-box bamaw$ git init

3. 配置目标仓库地址

进入本地文件目录,执行配置地址命令:

bamawdeMacBook-Pro:treasure-box bamaw$ git remote add origin https://gitee.com/taiyangyi/treasure-box.git

4. 添加并提交

bamawdeMacBook-Pro:treasure-box bamaw$ git add .
bamawdeMacBook-Pro:treasure-box bamaw$ git commit -m "从零开始带你玩转Git系列"
[master(根提交) 2c7fcf1] 从零开始带你玩转Git系列
 5 files changed, 478 insertions(+)
 create mode 100644 .DS_Store
 create mode 100644 "\347\211\210\346\234\254\346\216\247\345\210\266/.DS_Store"
 create mode 100644 
 ....

5. 推送至Gitee仓库

bamawdeMacBook-Pro:treasure-box bamaw$ git push origin master
枚举对象: 9, 完成.
对象计数中: 100% (9/9), 完成.
使用 4 个线程进行压缩
压缩对象中: 100% (9/9), 完成.
写入对象中: 100% (9/9), 10.69 KiB | 5.35 MiB/s, 完成.
总共 9 (差异 1),复用 0 (差异 0)
remote: Powered by GITEE.COM [GNK-6.2]
To https://gitee.com/taiyangyi/treasure-box.git
 * [new branch]      master -> master
bamawdeMacBook-Pro:treasure-box bamaw$

6. 看效果

好了,今天就到这里!欢迎大家评论区参与交流与讨论,原创不易,欢迎转发分享!

推荐阅读

1. 一探究竟:什么是Git?
2. 安装配置:搭建Git环境,快来体验!