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创建远程仓库

信息填好之后创建即可
2.HTTPS协议
获取https协议地址
创建一个存放项目的目录,右键–>git bash here
命令行执行:git clone https://github.com/用户名/仓库名.git
远程仓库就被克隆到了本地
当在本地仓库做了修改之后推送到远程仓库时,会跳出窗口进行登录,然后输入一遍用户名和个人访问令牌
2021年8月13日开始,GitHub在使用Git操作远程仓库时不再支持使用用户名密码形式进行身份验证,需使用个人访问令牌,使用Git操作GitHub仓库时使用用户名密码进行身份验证会报错
创建个人访问令牌
在GitHub官网右上角点击个人资料头像,点击settings

跳转后的左边栏点击Developer settings

点击Personal access tokens–>Generate new token
添加令牌描述信息(Note),过期时间(Expiration)、作用域(Select scopes)
点击generate token生成令牌
生成令牌,需要复制并保存好令牌,为了安全,关闭页面后将不能再次看到生成的令牌
再次执行推送,使用token进行身份验证


可以看到操作成功,并且在token有效期内不会要求每次操作都输入账号和token了
3.SSH协议
一般的GitHub用户都是使用的SSH(安全外壳协议)授权来连接,大多数Git服务器也是都选择使用SSH公钥来授权,它们之间的绑定需要使用SSH来生成SSH key,然后把公钥设置到GitHub当中,我们安装的Git当中就有SSH工具。
切换到
.ssh
如果里边有文件,说明曾经创建过,可以直接用也可以删掉重新生成
在Git命令行中输入
ssh-keygen -t rsa -C "你的邮箱"
,然后一直回车即可

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

验证:
ssh -T git@github.com
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
评论区