1.安装
一个参考链接
下载一个安装包,直接按照下载过程安装一下即可。
2.配置
// 命令行输入
git config --global user.name "username"
git config --global user.email "email@.qq.com"
// 设置一个标志的参数,username为用户名,email@qq.com为邮箱
// ––global意思为全局配置
3.创建本地仓库
- 进入一个空文件夹,或者新建一个文件夹
mkdir fileName
cd fileName
- 初始化,把该目录编程git可以管理的仓库
git init
// 这个时候文件夹下会多出一个.git目录,Git用来跟踪管理版本的,不要改动
- 把文件加到版本库
文件有三种状态,已提交(commited),已修改(modified),已暂存(staged)。
对应地有三种区域,工作区,暂存区,本地仓库。
在文件夹内新建一个文件,此时该文件处于工作区,状态为已修改,将已修改的文件add,此时该文件处于暂存区(状态为已暂存),再将已暂存的文件commit,此时该文件处于本地仓库,状态为已提交。
// 1. 把example.txt文件添加到暂存区
git add example.txt
//也可以将文件夹下的所有未暂存文件添加到暂存区
git add .
// 2. 提交更改,把文件提交到本地仓库
git commit -m "这是提交的时候可以输入的提示信息"
//其他相关命令
git status 查看工作目录与暂存区文件状态
git log 查看提交信息
git commit –am '说明' 添加到暂存区并提交到本地仓库
git diff HEAD –– example.txt 查看工作区与仓库的区别
git restore ––staged example.txt 取消暂存区文件的暂存
git reset HEAD example.txt 取消该文件上一次操作(add 与 commit 操作都可撤销)
- 版本回退(可选)
// 查看历史修改信息
git log
// 版本回退到上一个版本,其中的hard是选择回退的程度
// hard代表本地代码也回退
git reset --hard HEAD^
// 如果想要回退上上个版本
git reset --hard HEAD^^
// 回退到前n个版本就可以用
git reset --hard HEAD~n
// 相关命令
git reflog 查看以往版本的版本号,记录了用户操作的每一次命令
git reset -- hard 版本号 回退到该版本号对应的代码
git log ––pretty=online 将log信息在一行内展示
- 取消更改(可选)
// 如果使用VSCode的话,就会很清晰,工作目录,暂存区和工作区。
// 当你在文件上做一些改动时,可以在工作区查看它的工作树
// 可以点击暂存更改(add)把所做的更改存到暂存区,这个时候如果再次更改该文件,会重新在工作区生成工作树
// 相关命令
git checkout -- fileName.txt 放弃工作区中该文件的修改
git checkout . 放弃工作区中的全部修改
git checkout –f 强制放弃工作区和暂存区的文件修改
4.远程仓库
- 先注册github账号
- 创建SSH Key
因为本地git仓库与github仓库之间的传输通过SSH加密
1. 创建SSH Key
// 在用户主目录下生成.ssh文件,里面存放公钥和私钥的信息(id_rsa文件和id_rsa_pub文件)
ssh-keygen -t rsa –C “email@example.com"
// 我的存放目录在C:\Users\acer\ 里面有一个.ssh文件,看一下你有没有这个东西
// 其中id_rsa是私钥,id_rsa_pub是公钥
2. 在github上添加SSH Key
// github上设置的地方有一个SSH Keys的界面,点击Add SSh Key,title可以随便填,把你的id_rsa_pub里面的内容粘贴到Key的文本框
// 点击添加
// 相关命令
ssh –T git@github.com 查看主机与githubssh通信是否成功,注意之后要输入yes
5.推送和拉取
1. 把本地仓库推送到一个已经存在的远程仓库(远程仓库的名字叫做fileName)
// ①绑定远程仓库,这里用的是https地址,推荐使用ssh地址
git remote add origin https://github.com/usernamehhh/fileName.git
// ②第一次推送的时候加上-u参数,master指的是推送的分支
git push -u origin master
// 第一次推送过后会把本地分支与远程分支关联,以后再推送就不需要添加-u了
git push origin master
2. 克隆远程仓库的内容到本地
// 同样地,这里推荐使用ssh地址
git clone https://github.com/tugenhua0707/fileName.git
6.分支操作
1. 切换分支
git checkout branchName
2. 新建分支
git branch branchName
3. 新建并切换分支
git checkout -b branchName
4. 删除分支(本地)
git branch –d branchName
5. 查看所有分支(本地)
// 并用*号标记当前分支
git branch
6. 合并分支
// 前提是目前所在分支为oneBranch,想要把twoBranch的内容合并到oneBranch
git merge twoBranch
7. 重命名分支
// 若neBranchName已存在,则需使用–M强制重命名,否则使用–m,一般不会强制重命名
git branch –m/–M oldBranchName newBranchName
8. 查看远程分支和本地分支
git branch -a
9. 创建+切换分支并拉取远程分支
git checkout -b localBranch origin/remoteBranch
10. 删除远程分支(本地分支保留)
git push origin :remoteBranch
11. 获取远程仓库最新状态
git fetch
12. 图标方式查看log信息
git log ––graph ––pretty=online
//本地冲突merge出错时,根据实际情况修改代码后重新提交
13. 拉取远程仓库内容
git pull
7. 标签管理
1. 新建标签,默认为HEAD,描述信息为最后一次提交信息
git tag tag_name
// 给某版本打标签
git tag tag_name + 日志中的唯一标识
2. 新建标签并指定标签描述信息
git tag –a tag_name –m 'xinxi'
// 可为日志中某次操作后的版本添加标签并指定描述信息
git tag –a tag_name –m 'xinxi' + 日志中的唯一标识
3. 查看所有标签(本地)
git tag
4. 删除一个本地标签
git tag –d tag_name
5. 推送一个本地标签到远程
git push origin tag_name
6. 推送所有未推送的本地标签到远程
git push origin ––tags
7. 删除一个远程标签
git push origin :refs/tags/tag_name