侧边栏壁纸
博主头像
老十三

敬年少热诚!

  • 累计撰写 30 篇文章
  • 累计创建 35 个标签
  • 累计收到 7 条评论

目 录CONTENT

文章目录

git使用方法和常用命令

老十三
2022-01-06 / 0 评论 / 3 点赞 / 294 阅读 / 3,445 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-03-25,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

git使用方法和常用命令

关于git

Git是一个开源的分布式版本控制系统,是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件,Git与常用的版本控制工具CVS,Subversion等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

Git与SVN

Git不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。

如果你是一个具有使用SVN背景的人,你需要做一定的思想转换,来适应Git提供的一些概念和特征。

Git与SVN区别点:

  • 1、Git是分布式的,SVN不是:这是Git和其它非分布式的版本控制系统,例如SVN,CVS等最核心的区别。
  • 2、Git把内容按元数据方式存储,而SVN是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn.cvs等的文件夹里。
  • 3、Git分支和SVN的分支不同:分支在SVN中一点都不特别,其实它就是版本库中的另外一个目录。
  • 4、Git没有一个全局的版本号,而SVN有:目前为止这是跟SVN相比Git缺少的最大的一个特征。
  • 5、Git的内容完整性要优于SVN:Git的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

Git与GitHub

Git是一个分布式版本控制系统,并不像SVN那样有个中心服务器。 当你想要通过Git分享你的代码或者与其他开发人员合作,你就需要将数据放到一台其他开发人员能够连接的服务器上。

GitHub是一个基于git的代码托管平台,作为这个星球上最流行的开源托管服务,github无疑是绝大多数人使用git的主要方式,时至今日github已有着7300多万的开发者、4万多的组织以及2亿多个存储库,在这上面几乎可以找到任何你想要寻找的项目,你也可以在上面和任何人一起协作,去开发、管理、维护项目。

Git与GitHub的使用

本文主要讲述通过git操作github远程仓库的使用方法及常用命令,如果想了解更多关于git的知识,请前往:https://www.runoob.com/git/git-tutorial.html

本地库与远程库的建立以及关联

本地仓库与远程仓库建立连接可以通过HTTPS协议和SSH协议授权。

前提:

具有GItHub账户:前往github自行注册

安装Git:下载链接

1.github创建远程仓库

image-20220106184225369

image-20220106184358747

信息填好之后创建即可

image-20220106184611495

2.HTTPS协议

获取https协议地址

image-20220106191020868

创建一个存放项目的目录,右键–>git bash here

命令行执行:git clone https://github.com/用户名/仓库名.git

远程仓库就被克隆到了本地

image-20220106192823400

当在本地仓库做了修改之后推送到远程仓库时,会跳出窗口进行登录,然后输入一遍用户名和个人访问令牌

2021年8月13日开始,GitHub在使用Git操作远程仓库时不再支持使用用户名密码形式进行身份验证,需使用个人访问令牌,使用Git操作GitHub仓库时使用用户名密码进行身份验证会报错

image-20220106193018553

创建个人访问令牌

GitHub官网右上角点击个人资料头像,点击settings

跳转后的左边栏点击Developer settings

image-20220106194111955

点击Personal access tokens–>Generate new token

image-20220106194403736

添加令牌描述信息(Note),过期时间(Expiration)、作用域(Select scopes)

image-20220106195002351

点击generate token生成令牌

image-20220106195047239

生成令牌,需要复制并保存好令牌,为了安全,关闭页面后将不能再次看到生成的令牌

image-20220106195344076

再次执行推送,使用token进行身份验证

image-20220106195459305 image-20220106195827115

可以看到操作成功,并且在token有效期内不会要求每次操作都输入账号和token了

image-20220106195925389

3.SSH协议

一般的GitHub用户都是使用的SSH(安全外壳协议)授权来连接,大多数Git服务器也是都选择使用SSH公钥来授权,它们之间的绑定需要使用SSH来生成SSH key,然后把公钥设置到GitHub当中,我们安装的Git当中就有SSH工具。

切换到.ssh

如果里边有文件,说明曾经创建过,可以直接用也可以删掉重新生成

image-20220106201656155

在Git命令行中输入ssh-keygen -t rsa -C "你的邮箱",然后一直回车即可

image-20220106202428261

在用户目录下生成私钥和公钥两个文件,私钥自己保留,不能对外公布,公钥复制GitHub中

image-20220106202721840

进入GitHub账号,设置ssh公钥

image-20220106203156274

image-20220106203244707

image-20220106203836386

验证:ssh -T git@github.com

image-20220106204156652

4.本地创建仓库并与远程仓库关联

在当前目录新建一个git库:git init

建立本地仓库与远程仓库的关联:

https方式:git remote add origin https://github.com/用户名/仓库名.git

ssh方式:git remote add origin git@github.com:用户名/仓库名.git

git常用命令

# 在当前目录新建一个代码库
git init
# 设置git用户名、密码、邮箱
git config user.name "用户名"
git config user.password "密码"
git config user.email "邮箱"
# 设置git用户名、密码、邮箱(全局配置)
git config --global user.name "用户名"
git config --global user.password "密码"
git config --global user.email "邮箱"
# 从服务器端克隆项目到本地
git clone
# 查看文件修改状态
git status
# 查看该文件与上次提交修改代码的差别
git diff 文件路径
# 查看本地缓冲和上次提交的差别
git diff --cached 文件路径
# 新建一个临时分支
git checkout –b 分支名称
# 切换分支
git checkout 分支名称
# 查看所有的分支
git branch
# 强制删除一个分支
git branch –D temp
# 将服务端代码更新到本地
git pull
# 提交文件到暂冲区 
git add 文件路径
# 提交所有的需要add的文件到缓冲区
git add -A
# 将缓冲区的文件提交到本地库中,提交说明尽量清楚简洁
git commit –m ‘提交说明’
# 将已经提交到本地的仓库的代码push到远程服务器
git push origin master
# 显示提交的日志
git log
# 显示某次提交的元数据和内容变化
git show [commit Id]
# 显示提交的文件名称
git show [commit Id] --stat
# 恢复暂存区的所有文件
git checkout
#重置暂存区的指定文件,用来撤销git commit
git reset [file/commit ID]
# 将本地版本退回到提交之前的版本。这个操作会将自己新写的代码全部撤销没了
git reset –hard [commit Id]
# 合并临时分支到当前分支
git cherry -pick temp
# 修改最近一次提交说明的内容同时可以合并提交,对已经Push的无效
git commit –amend
# 分两步执行,可以删除远程仓库对应的文件
git rm <删除的本地仓库中文件路径(前提已经提交到远程仓库)> git commit -m “delete file”

提交步骤:

  • 首先通过git init,git clone准备好基本环境,当写完代码要提交到远程服务器
  • 使用git status查看改动的文件有哪些
  • 分别git diff改动文件路径,看看有没有空格之类,检查格式,改动具体代码
  • 确认无误后git add需要提交的文件路径,都需要提交可以使用git add .
  • git pull
  • git commit -m ‘提交说明’,切记commit之前先git pull
  • git push origin master,注:github现在默认主分支是main,如果你的主分支是main则使用其将master替换

写在后面

如果觉得使用git命令比较麻烦,只是想简单的提交项目到github,可以使用GitHub Desktop

下载链接:https://desktop.github.com/

若需要汉化GitHub Desktop,请前往:https://github.com/lkyero/GitHubDesktop_zh

想要了解更多请访问GitHub Desktop官方文档:https://docs.github.com/cn/desktop

image-20220106224428119

image-20220106224855434

image-20220106225045483

3

评论区