git基础概念
版本控制简介
版本控制是一种管理文件变化历史的技术,允许我们
- ①记录文件每次修改的内容、时间和作者;
- ②回退到历史版本;
- ③多人协作开发代码
git工作原理
git可以分为工作区、暂存区、本地仓库、远程仓库。前三者都存在于本地计算机。
- 工作区:电脑上真实看到喝编辑的文件夹。文件修改后不会立刻被 git 管理,需要用
git add
filename加入到暂存区 - 暂存区:一个临时缓冲区,用于存放“准备好提交”的改动。使用git commit -m "提交说明" 把暂存区的文件加入本地仓库。
- 本地仓库:电脑上的git 仓库,通过快照记录了所有版本历史。可以回溯和查看历史版本。通过git push可以把本地仓库上传到远程仓库。
- 远程仓库:存放在服务器上的 git 仓库,比如 github、gitee。多人协作、备份项目、部署应用都依赖远程仓库
git与集中式版本控制的区别
- 集中式版本控制(svn、cvs):所有版本历史集中存储在中央服务器,客户端仅保存当前版本。
- 分布式版本控制(git、mercurial):每个开发者的电脑上都有完整的版本库副本,脱机也能操作。
全流程操作
1、安装好git之后,右击项目文件夹,点击open git bash here,打开终端。
2、配置git用户信息(第一次使用时),昵称随意取,邮箱和远程仓库的注册邮箱对应。
git config --global user.name "你的名字" git config --global user.email "你的邮箱"
3、初始化仓库,会在该文件夹下创建.git文件,让该目录变成git仓库。
git init
4、提交到本地仓库
先添加文件到暂存区,.代表所有文件,可以替换成具体的文件名。
git add .
在提交到本地仓库。
git commit -m "首次提交:添加项目文件"
5、在github上创建远程仓库
登陆 github → new repository → 起个名字 → 创建。
随后拿到仓库地址,如https://github.com/yourname/myproject.git
6、关联远程仓库
git remote add origin https://github.com/yourname/myproject.git
7、git配置代理。不配置可能导致git连接不了github。端口改成你使用的代理器所使用的端口。可以在设置里搜代理在手动设置代理那里查看。
git config --global http.proxy http://127.0.0.1:端口 git config --global https.proxy http://127.0.0.1:端口
8、推送本地代码到github,这时候需要登录github,可以使用密码登录也可以使用token登录。token在github上可以申请,记得勾选权限。
git push -u origin main
分支管理
创建与切换分支
# 创建分支 git branch 分支名 #切换分支 git checkout 分支名 #创建并切换分支,等效于上面两个指令 git checkout -b 分支名
查看与合并分支(git merge
)
#查看所有分支 当前所在分支前会有 * git branch #合并分支,从当前分支合并另一个分支 git merge 另一个分支名
解决合并冲突
合并时,如果两个分支改动了同一个地方,会出现冲突,导致无法合并。如
conflict (content): merge conflict in file.txt
解决方法:打开冲突文件,找到冲突标记(<<<<<<<
, =======
, >>>>>>>
),进行修改成想要的最终内容,在重新add和commit
删除分支
# 删除本地分支 git branch -d 分支名 # 安全删除(分支已合并才允许) git branch -d 分支名 # 强制删除 # 删除远程分支 git push origin --delete 分支名
重命名分支
git branch -m 新名字
远程仓库与github
fork与pull request流程
适用场景:不能直接 push 到别人的仓库时(如开源项目)
流程为:
- ①fork 项目
- ②本地 clone 你的 fork
- ③创建新分支开发 git checkout -b fix-typo
- ④修改并提交代码:git add . && git commit -m "修复错别字"
- ⑤推送分支到你的 github 仓库:git push origin fix-typo
- ⑥在 github 上发起 pull request(简称 pr),等待作者审核并合并。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论