Git基本概念
Git是一个分布式版本控制系统,用于跟踪文件变化并协调多人协作开发。每个开发者拥有完整的项目历史副本,核心概念包括:
- 仓库(Repository):存储项目历史记录和元数据的数据库
- 提交(Commit):记录文件变化的快照
- 分支(Branch):独立开发线
- 远程(Remote):托管在服务器上的仓库副本
安装与配置
从官网下载对应操作系统的Git安装包(https://git-scm.com/)。安装后需配置用户信息:
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
查看配置信息:
git config --list
创建仓库
初始化新仓库:
git init
克隆现有仓库:
git clone https://github.com/user/repo.git
基本工作流程
将文件添加到暂存区:
git add filename
提交更改到本地仓库:
git commit -m "commit message"
查看当前状态:
git status
分支管理
创建新分支:
git branch new-branch
切换分支:
git checkout branch-name
合并分支:
git merge branch-name
删除分支:
git branch -d branch-name
远程操作
添加远程仓库:
git remote add origin https://github.com/user/repo.git
推送本地更改:
git push -u origin main
拉取远程更改:
git pull origin main
查看历史
显示提交历史:
git log
查看特定文件的修改历史:
git log -p filename
撤销更改
撤销工作目录的修改:
git checkout -- filename
撤销暂存区的文件:
git reset HEAD filename
修改最后一次提交:
git commit --amend
标签管理
创建标签:
git tag -a v1.0 -m "version 1.0"
推送标签到远程:
git push origin v1.0
忽略文件
创建.gitignore文件,列出需要忽略的文件模式:
*.log
node_modules/
.DS_Store
常见问题处理
解决合并冲突时,需手动编辑标记为冲突的文件,然后:
git add conflicted-file
git commit
查看帮助信息:
git help command
掌握这些基础命令即可应对日常版本控制需求。实际开发中建议结合图形化工具(如GitKraken、SourceTree)辅助操作。
一个完整的一般使用流程
按照以下步骤用 git 拉取项目到本地,修改后再推送到 GitHub:
1. 克隆项目到本地
如果还没有克隆过这个项目到本地,先执行:
git clone https://github.com/kirinmin/kirinmin.github.io.git
cd kirinmin.github.io
2. 同步远程最新内容(如果已克隆过)
如果已经在本地有了仓库,可以先进入项目文件夹,然后拉取最新内容:
cd kirinmin.github.io
git pull origin main
注:如果你的默认分支不是 main,可能需要改成 master 或其他分支名。
3. 修改项目
在本地进行你想要的修改,比如编辑或添加文件。
4. 查看修改状态
git status
5. 添加修改的文件
git add .
或者只添加指定文件:
git add 文件名
6. 提交修改
git commit -m "你的修改说明"
7. 推送到 GitHub
git push origin main
如果分支不是 main,请替换为实际分支名。
解决 git 报错
在使用 Git 进行代码管理的过程中,经常会遇到各种各样的问题,其中之一就是在执行 git clone 或 git pull 等操作时出现 “fatal: unable to access ‘https://github.com/…/.git’: Recv failure Connection was reset” 的报错。这个问题通常是由网络连接问题或代理设置不正确导致的。在我的个人使用经验中,我亲自尝试了两种方法,它们都能够有效地解决这个报错。
方法一:取消代理设置(适用于网络无代理的情况)
这是最常见的解决方法之一,通过在终端执行以下命令,可以取消 Git 的代理设置:
git config --global --unset http.proxy
git config --global --unset https.proxy
这样就可以清除 Git 的代理设置,让其直接连接网络进行操作。
方法二:设置系统代理(适用于网络需要代理 否则无法访问github)
有时候取消代理设置仍然会出现报错,这时可以通过设置系统代理来解决。具体步骤如下:
在代理服务器中,将端口设置为7890(这里需要注意的是需要将代理软件的系统代理端口也设置为7890),在终端输入以下命令,设置 Git 使用本地代理:
git config --global http.proxy http://127.0.0.1:7890
设置完成后,可以通过以下命令检验是否设置成功:
git config --global -l