诸神缄默不语-个人CSDN博文目录
之前写过一篇VSCode + Git的博文:VSCode上的Git使用手记(持续更新ing…)
现在随着开发经历增加,感觉用到命令行之类复杂功能的机会越来越多了,所以我专门再写一篇Git命令行的文章。
Git官网:https://git-scm.com/
Git下载和安装过程挺简单的,我下次再在新电脑上安Git的时候再专门写一篇博文。
在正常使用Git之前需要先配置用户名和邮箱:
git config --global user.name "您的用户名"
git config --global user.email "您的邮箱"
Git命令可以在cmd中执行,也可以在Git bash中执行。跟cmd一样,直接在文件浏览器地址栏输入git bash
就能在打开该路径下的Git bash。
我个人的体验是Git bash比cmd好用。
文章目录
- 1. 初始化Git项目
- 2. Git工作流程
- 1. 本地
- 2. 远程
- 3. 搭建本地Git服务器流程
- 4. Off-the-shelf Git服务器
- 5. 忽略当前文件夹中的指定文件:.gitignore
- 5. 修改Git bash文本编码格式
1. 初始化Git项目
git init
:运行后就会开始版本管理这个文件夹
2. Git工作流程
1. 本地
- 将修改的文件加到缓存区(stage):
git add
- 将缓存区文件放回去:
git reset
回退到指定commit id之前版本的仓库:git reset --hard <指定commit_id>
- 从缓存区提交文件到本地仓库:
git commit
2. 远程
GitHub上处理私有仓库需要配置秘钥,这部分可参考:https://blog.csdn.net/PolarisRisingWar/article/details/144669022
- 添加远程仓库:
git remote add <远程仓库名> <仓库URL>
origin是远程仓库的默认名称 - 修改远程仓库URL:
git remote set-url <远程仓库名> <新仓库URL>
- 从远程仓库拉取代码版本到本地并进行合并:
git pull
这个代码实际上是两步:git fetch
:从远程仓库拉取代码版本(就是知道一下远程有什么本地没有的东西)git merge
:将远程仓库的代码版本合并到本地仓库- 合并二进制文件冲突的问题可参考我写的另一篇博文来解决:https://blog.csdn.net/PolarisRisingWar/article/details/138790764
git push <远程仓库名> <branch>
:把本地代码推送到远程仓库
示例:git push origin master
git clone
:将Git服务器管理的仓库直接拉到本地
用SSH克隆的教程可参考我写的另一篇博文:https://blog.csdn.net/PolarisRisingWar/article/details/132713802- 设置代理(主要是用于GitHub):
git config --global http.proxy IPv4地址:7890 git config --global https.proxy IPv4地址:7890
- 删除代理:
git config --global --unset http.proxy git config --global --unset https.proxy
3. 搭建本地Git服务器流程
因为普通的仓库有工作目录,不适合直接作为服务器接收push,所以需要设置一个裸仓库(bare repository)。
裸仓库没有工作目录,更适合作为中央仓库。
用一个空文件夹作为裸仓库:git init --bare D:\proj1_bare.git
如果出现如下报错信息:
'git-receive-pack' 不是内部或外部命令,也不是可运行的程序或批处理文件。
将Git安装路径中的Git\mingw64\bin
(即git-receive-pack.exe文件所处的文件夹)的路径添加到系统变量Path中。添加系统变量这事我好像在Java安装之类的博文里面写好几遍了,此略。
我之前本来想研究一下搭建远程服务器的,但是一直没搞出来,总之如果在本地的话直接就可以:
在本地仓库中:git remote add bare_repo D:\proj1_bare.git
添加远程仓库
在其他文件夹中就可以正常实现各种Git远程仓库的相关功能了:git clone D:\proj1_bare.git
4. Off-the-shelf Git服务器
- Git Daemon
- https://gitlab.cn/install/
- Gitea
- Gitee
- Gogs
- Gitblit
- https://gitstack.com/:Windows服务器
5. 忽略当前文件夹中的指定文件:.gitignore
就是新建一个文本文件,命名为.gitignore
,在里面写的文件/文件夹就不会被Git追踪。
我之前专门写过.gitignore文件的教程:Git的.gitignore文件详解与常见用法
5. 修改Git bash文本编码格式
当出现中文乱码的时候会用得到的:
- 在git bash标题栏右键,点击Options
- 进入Text,Character Set选择GBK: