Git常用命令总结


前言

Git 诞生于一个极富纷争大举创新的年代。Linux 内核开源项目有着为数众多的参与者。 绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。 到 2002 年,整个项目组开始启用一个专有的分布式版本控制系统 BitKeeper 来管理和维护代码。

到了 2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了 Linux 内核社区免费使用 BitKeeper 的权力。 这就迫使 Linux 开源社区(特别是 Linux 的缔造者 Linus Torvalds)基于使用 BitKeeper 时的经验教训,开发出自己的版本系统


提示:以下是本篇文章正文内容,下面案例可供参考

Git是什么?

下载地址:Git下载官方网址

Git 是一种分布式版本控制系统,它可以不受网络连接的限制,加上其它众多优点,目前已经成为程序开发人员做项目版本管理时的首选,非开发人员也可以用 Git 来做自己的文档版本管理工具。

大概是大二的时候开始接触和使用Git,从一开始的零接触到现在的重度依赖,真是感叹 Git 的强大。

Git 的api很多,但其实平时项目中90%的需求都只需要用到几个基本的功能即可,所以本文将从 实用主义 深入探索 2个方面去谈谈如何在项目中使用 Git,一般来说,看完 实用主义 这一节就可以开始在项目中动手用。

常用的Git代码托管服务

前面我们已经知道了Git中存在两种类型的仓库,即本地仓库和远程仓库。那么我们如何搭建Git远程仓库呢?我们可以借助互联网上提供的一些代码托管服务来实现,其中比较常用的有GitHub、码云、GitLab等。

  • gitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名gitHub
  • 码云是国内的一个代码托管平台,由于服务器在国内,所以相比于GitHub,码云速度会更快
  • GitLab是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务

配置账户信息

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

查看配置信息

配置信息会保存在~/.gitconfig文件中

也可以自定义其他命令的别名,主要合理且方便操作即可。

  • git config --list:查看所有配置信息
  • git config user.name:查看用户名称
  • git config user.email:查看配置的用户邮箱
  • 定义命令别名:
    • git config --global alias.st status:则git status可用git st代替
    • git config --global alias.co checkout:则git checkout可用git co代替
    • git config --global alias.ci commit:则git commit可用git ci代替
    • git config --global alias.br branch:则git branch可用git br代替

秘钥配置

mac终端查看是否已经存在SSH密钥:cd ~/.ssh,如果没有密钥则不会有此文件夹。

生成新的秘钥, 命令如下
ssh-keygen -t rsa -C "eamil"
你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,因为这个Key仅用于简单的服务,所以也无需设置密码。

完成后会有如下显示

Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/gybguohao/.ssh/id_rsa。
Your public key has been saved in /Users/gybguohao/.ssh/id_rsa.pub。
The key fingerprint is:
SHA256:5V6ZCQNS/3bVdl0GjGgQpWMFLazxTslnKbW2B1mbC+E eamil

如果服务器端需要公钥, 直接复制.ssh目录下的id_rsa.pub内容即可。


将本地新建的项目提交到远程仓库的步骤

  • 初始化本地仓库git init
  • 将本地内容添加至git本地暂存区中git add .
    • 将暂存区添加至本地仓库中git commit -m "first commit"
    • 添加远程仓库路径git remote add origin https://github.com/gybguohao/test.git
    • 将本地内容push至远程仓库中git push -u origin master

获取Git仓库

[方式一]:在本地初始化一个Git仓库

  • git init

[方式二]:从远程仓库克隆

  • git clone 仓库url

本地仓库操作

  • git status:查看文件状态

    • untracked 未跟踪(未被纳入版本控制)
    • tracked 已跟踪(被纳入版本控制)
    • Unmodified 未修改状态
    • Modified 已修改状态
    • Staged 已暂存状态
  • git status –s:使输出信息更加简洁

  • git add 文件名:将指定文件加入暂存区

  • git add .:将所有文件加入暂存区

  • git reset 文件名:将指定文件从暂存区取消

  • git commit -m "提交日志":将暂存区的文件修改提交到本地仓库

  • git rm 文件名:删除指定文件(删除后提交生效)

  • git log:查看日志记录

配置忽略区域

首先需要创建一个.gitignore的文件,在里面编写一些配置信息

#忽略.a结尾的所有文件
*.a

#不忽略lib.a文件
!lib.a

#忽略当前目录下的TODO文件
/TODO

#忽略build目录下的所有文件都忽略
build/

#doc目录下所有以.txt结尾的文件都忽略
doc/*.txt

#doc目录包含其子目录下所有.pdf文件都忽略
doc/**/*.pdf

远程仓库操作

  • git remote -v:查看远程仓库
  • git remote add <shortname> <url> :添加一个新的远程Git仓库
  • git clone <url>:从远程仓库克隆
  • git remote rm <shortname>:移除远程仓库
  • git fetch <shortname> <branch>:是从远程仓库获取最新版本到本地仓库,不会自动merge
  • git pull <shortname> <branch>:是从远程仓库获取最新版本并merge到本地仓库
    • 如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报错(fatal: refusing to merge unrelated histories ),解决此问题可以在git pull命令后加入参数--allow-unrelated-histories
  • git git push <shortname> <branch>:推送到远程仓库

Git分支操作

  • git branch:列出所有本地分支
  • git branch -r:列出所有远程分支
  • git branch -a:列出所有本地分支和远程分支
  • git checkout <branch>:切换分支
  • git push <shortname> <branch>:推送至远程仓库分支
  • git merge <branch>:合并当前使用的分支和命令指定的分支
    • 如果你在两个不同的分支中,对同一个文件的同一个部分进行了不同的修改,Git 就没办法合并它们,同时会提示文件冲突。此时需要我们打开冲突的文件并修复冲突内容,最后执行git add命令来标识冲突已解决
  • git branch -d <branch>:删除分支
    • 如果要删除的分支中进行了一些开发动作,此时执行上面的删除命令并不会删除分支
  • git branch -D <branch>:强制删除分支
  • git push origin –d <branch>:删除远程仓库中的分支

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了Git的使用,而git提供了大量能使我们快速便捷地处理数据的指令。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端践行者-Mr鹏帅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值