首页  >  文章  >  开发工具  >  如何二十分钟搞懂git的基础使用

如何二十分钟搞懂git的基础使用

WBOY
WBOY转载
2022-01-05 17:36:571612浏览

本篇文章给大家带来了git的基本使用相关知识,其中包括git的基本操作,分支操作以及更改提交的操作等等,希望对大家有帮助。

如何二十分钟搞懂git的基础使用

1. 设置SSH Key

设置 SSH Key 使得设备可以有权限访问账户里面的代码仓库

$ ssh-keygen -t rsa -C "your_email@example.com"
  • "your_email@example.com" 设置为自己GitHub账户的注册邮箱
  • id_rsa 文件是私有密钥,id_rsa.pub 是公开密钥。
$ cat ~/.ssh/id_rsa.pub

ssh-rsa 公开密钥的内容 your_email@example.com

  • 然后把公钥拷贝下来,添加到账户里面,注意要把前面的 ssh-rsa 也拷贝下来
  • 头像》Settings》SSH Key》new SSH Key

接下来验证一下,出现successfully字样即为成功

$ ssh -T git@github.com
Enter passphrase for key '/c/Users/MYPC/.ssh/id_rsa':
Hi abc! You've successfully authenticated, but GitHub does not provide shell access.

2. git 基本操作

2.1 git clone 已有仓库

$ git clone git@github.com:hirocastest/Hello-World.git

这里会要求输入 GitHub 上设置的空开密钥的密码,认证成功后,仓库便会被 clone 到当前目录中。

2.2 git add 将文件加入暂存区

代码编写完成之后,将代码添加到系统的暂存区

$ git add 文件夹/文件

2.3 git commit 保存仓库的历史记录

git commit 命令可以将当前暂存区中的文件实际保存到仓库的历史记录中。通过这些记录,我们就可以在工作树中复原文件。

$ git commit -m "记录一行提交信息"
  • m 表示对这个提交的概述,如果想要记录详细信息,就把 - m 去掉

2.4 git push

之后只要执行 push 命令,GitHub 上的仓库就会被更新

$ git push

2.5 git init 初始化仓库

clone 方法建立仓库,不需要执行 init 操作。如果要把本地文件设置为仓库,那么就需要进行 init 操作

$ mkdir git-tutorial

$ cd git-tutorial

$ git init

2.6 git status 查看仓库状态

$ git status
# On branch master
#
# Initial commit
#
nothing to commit (create/copy files and use "git add" to track)

结果现实,我们正处于 masteer 分支下,并且没有可提交的内容

2.7 git log 查看提交日志

git log 命令可以查看以往仓库中提交的日志。包括什么人在什么时候进行了提交或合并

$ git log
commit 5dbbff6e009abb8a6cc44187c93b694f94fbf82a (HEAD -> main, origin/main, origin/HEAD)
Author: ywm <ywm_up@qq.com>
Date:   Sun Feb 28 17:17:00 2021 +0800

只想现实提交信息的第一行,可以在 git log 命令后加上 -- pretty=short

$ git log --pretty=short

2.8 git diff 查看更改前后的差别

执行 git diff 查看当前工作书与暂存区的差别

$ git diff

3. 分支操作

可以创建多个分支,同时进行完全不同的作业。等分支作业完成之后再与 master 分支合并。通过灵活运用分支,可以让多人同时高效的进行并发开发。

3.1 git branch 显示分支一览表

master 分支左侧有 “*”(星号),表示这是我们当前所在的分支。

$ git branch
* master

3.2 git checkout 创建、切换分支

创建并切换到分支 feature-A

$ git checkout -b feature-A

实际上,上面那条命令,等价于下面两条命令

$ git branch feature-A

$ git checkout feature-A

切换回分支 mian

$ git checkout main

切换回上一个分支

$ git checkout -
  • 操作一下:创建一个新的分支 feature,在新的分支上修改 README.md,并且 add、commit

通过实际操作可以证明:只要创建多个分支,就可以在不互相影响的情况下同时进行多个功能的开发

3.3 git merge 合并分支

合并时加上 --no–ff 参数,可以保存之前的分支历史

$ git merge --no-ff feature

随后编辑器会启动,用于录入合并提交的信息

3.4 git log --graph 以图标的形式查看分支

$ git log --graph

4. 更改提交的操作

4.1 git reset 回溯历史版本

$ git reset --hard 目标时间点的hash值

通过 git reflog 查看当前仓库的操作日志,可以找到回溯历史之前的哈希值。只要不进行 git 的 GC(垃圾回收),就可以通过日志随意调取近期的历史状态。即便开发者错误执行了 git 操作,基本也可以用 git reflog 命令恢复到原先的状态。

$ git reflog

上面打印的是最近的操作,下面打印的是最旧的操作

4.2 消除冲突

  • 合并操作的时候,容易出现冲突,这时候需要打开编辑器,来解决冲突
  • 在实际开发中,往往需要删除其中之一,所以务必要仔细分析冲突部分的内容后再进行修改
  • 解决冲突之后,再进行 add 和 commit 操作

如果对上一条提交信息不满意,可以使用 amend 参数进行修改

$ git commit --amend

4.3 git rebase -i 压缩历史

在合并分支之前,如果发现已提交的内容中有些拼写错误,不妨提交一个修改,然后将这个修改包含到前一个提交之中,压缩成一个历史记录。

git rebase -i HEAD~2

可以选定档期按分支中包含 HEAD 在内的两个最新历史记录为对象,并在编辑器中打开

5 推送至远程仓库

5.1 git remote add 添加远程仓库

在创建新仓库的时候,建议不要勾选 README.md 文件,这样会使本地仓库和远程仓库失去整合性。虽然到时候可以强制覆盖,但防止这一情况发生,还是不要勾选,就创建一个空仓库就好。

git remote 在先写代码,后创建仓库的情况下能较好的使用

$ git remote add origin git@github.com:github-book/git-tutorial.git

对于一般先创仓库,后写代码的,需要先 pull 下来仓库,再对文件进行修改

5.2 git push 推送至远程仓库

推送至 master 分支

$ git push -u origin master

-u 参数可以在推送的同时,将 origin 仓库的 master 分支设置为本地仓库当前分支的 upstream(上游),添加这个参数,将来运行 git pull 命令从远程仓库获取内容的时候,本地仓库的这个分支就可以直接从 origin 的 masteer 分支获取内容,省去了另外添加参数的麻烦

除了 master 分支之外,还可以推送到其他分支

$ git checkout -b feature-D

$ git push -u origin feature-D

6 从远程仓库中获取

6.1 git clone 获取远程仓库

$ git clone git仓库地址

将本地的 feature-D 分支更新到最新状态

$ git pull origin feature-D
  • 多名开发者在同一个分支中进行作业时,为减少冲突情况的发生,建议更频繁的进行 push 和 pull 操作

推荐学习:《Git教程

以上是如何二十分钟搞懂git的基础使用的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文转载于:csdn.net。如有侵权,请联系admin@php.cn删除