关于git使用的图文教程(包括基本使用,处理冲突问题等等)超详细

目录

用户签名,初始化git

git提交流程图

提交到本地库

版本穿梭

分支操作

分支合并冲突

团队协作

github的使用

推送代码

克隆

拉取代码

团队协作冲突

团队协作之分支管理

推送分支到分支:

拉去远程库分支到本地库:

本地删除远程分支:

gitignore

用户签名,初始化git

--global是全局设置的意思

git提交流程图

master又叫历史区

提交到本地库

java 复制代码
git status  //显示暂存区状态(绿色表示在暂存区,红色的表示没在暂存区的)

git rm --cached 1.txt (从暂存区删除该文件)

当提交完后,暂存区会被清空。当你提交过后,你之后又要提交,直接git add . 后会自动区分哪个文件修改了(只会把修改过的文件提交到暂存区中)

注意:在git log后,如果你的信息过多,会让你一直回车才能显示完,

如果要在中途或者最后显示完后退出:按下q键就行了

如果在git commint 之后忘记-m 注释了 会直接跳到vrm编辑界面:

因为提交时必须要注释,这个时候按下i后变成insert模式,然后就可以写注释了(不要写在井号里):

这个时候注释(A功能-22222)就写好了,退出的话先按esc退出insert模式然后输入:wq然后直接回车就行了

版本穿梭

head表示当前位置,master是默认主分支。

如果往回退了一下,这时候用git log是看不到后面的分支的,只能看到目前结点和前面的分支

这时候要用git reflog就可以看到所有记录了:

也可以通过这个字符串来回退(git reflog , git log 都可以看到):

注意:回退后会导致工作区代码同样发生回退(硬回退)

如果不想工作区代码发生回退可以用软回退,这样只会回到缓存区:

软回退的作用:

1.重新git commit -m "XXXXX" 改变注释的内容

2.如果某个文件有bug,但是又不想修改bug单独占一个结点,可以先把这个结点返回到暂存区中然后再把修改的新代码add到暂存区,然后再提交到历史区

所以尽量不要用reset,用revert.

revert相当于你回退到了版本1,但是不会对其他版本造成影响,而是新造一个版本,这个版本就是版本1了

新生成一条记录,所以会有注释

直接写在上面

而我觉得版本回退最重要的作用:

如果某次推送不小心推送错了代码,这时可直接revert回退到上个版本再次推送即可覆盖

如果有人不小心把分支代码不小心提交到了远程库的主分支上:

重置 master****分支到之前的状态 你可以使用 git reset 来重置 master 分支到目标提交:

css 复制代码
git checkout master  # 切换到 master 分支
git reset --hard <commit-id>  # 将 master 分支重置到目标提交

分支操作

为什么要有分支:

当测试人员在测试先版本时,如果开发人员又更新了版本测试版本就会发生改变

分支合并冲突

假如现在再写一个分支的代码,但是主分支有个bug要修改,修改完后等分支写完合并的时候会自动合并失败:

同时会自动进入手动合并状态。这时候打开合并的文件会发现:

这时候可以手动决定如何修改。修改完后,记得退出手动合并状态(提交至历史区):

团队协作

github的使用

点击第一个创建仓库

填写完名称即可创建(公开为所有人都能看,只有选定的人才能提交。私有为只能选定的人才能看和提交)

css 复制代码
git remote add origin https://github.com/huangzhijun0210/test_warehouse.git
//把https://github.com/huangzhijun0210/test_warehouse.git取别名origin

通过remote -v查看是否关联上了:

如果写的时候不小心写错了可通过以下命令删除:

推送代码
css 复制代码
git push -u origin master:master
//git push为默认,origin为推向的地址,master为要推送到的分支,
//后面的:master(代表要推送到远程仓库的分支)可以省略,默认是master
//-u:可加可不加,加上后设置这条推送为默认推送,以后直接git push就是默认推送了

推送完整流程:

克隆

当团队中来了另外一个人,这时候没有连上远程终端不能pull代码,所以需要克隆先把代码克隆下来:

拉取代码
css 复制代码
git pull origin master
//从远程仓库master分支拉取
pull只拉取更新的,有修改的。拉去后和本地进行合并
团队协作冲突

这篇博客将多人协作和冲突问题解释得很清楚:

Git推送到远程仓库GitHub以及多人协作开发_多人维护的git推到远程仓库-CSDN博客

当另外一个人在同一个文件夹下推送后,你再次推送,就会报错:版本错误,这时候需要你先拉取最新版本,再推送

因为两个人改的不是同一个文件,所以直接esc,:wq退出即可

如果另外一个人修改了你要推送的代码,你pull后会进入手动合并状态,这时需要先手动合并代码才能推送上去

团队协作之分支管理
推送分支到分支:

注意:不要把本地的分支推到远程的master上,这样写是错误的

拉去远程库分支到本地库:

这时不需要指定本地库的分支名,这时你直接切换会基于远程的login分支直接创建出本地的login分支(所以本地库的分支最好跟远程库的名字相对应,同样的推送如果名字相对应推送也可以省略远程库的分支名,一样会成功)

本地删除远程分支:

直接用空分支覆盖本地分支。

当分支功能完成后和主分支合并后再推送到远程主分支上,然后就要删掉远程库的分支

gitignore

创建完.gitignore后,写上不想上传的文件名,这时这个文件就会变灰,在上传到远程库时就会忽略掉

这样子就是所有txt文件全部被忽略了

相关推荐
无心水9 小时前
【Hermes:安全、权限与生产环境】39、智能体也会犯错?Hermes 纠错、回滚与遗忘机制全指南 —— 让 AI 的错误像 Git 一样可逆可控
人工智能·git·安全·mcp协议·openclaw·hermes·honcho
南境十里·墨染春水13 小时前
linux学习进展 git详解
linux·git·学习
zhangfeng113314 小时前
CodeBuddy ai对话框上面的git docs terminal Rulds 干嘛用的,以thinkphp fastadmin 为例,插件市场
人工智能·git·编程
OYangxf15 小时前
Git Conflict Resolution
大数据·git·elasticsearch
高斯林.神犇15 小时前
Git全套流程
git
次元工程师!17 小时前
LangFlow开发(一)—安装和部署
git·python·大模型·langflow
怣疯knight17 小时前
【无标题】
git
Jim-zf18 小时前
git 锁文件
git
lcx_defender18 小时前
Git常见操作与指令
git
一只积极向上的小咸鱼1 天前
嵌套 Git 仓库 / gitlink / submodule 问题总结
大数据·git·elasticsearch