git自学

本文详细介绍了Git和Subversion的区别以及Git的工作原理,包括四个工作区的概念。通过实例演示了Git的基本操作,如初始化、提交、分支管理和远程仓库交互。此外,还提到了如何处理冲突和回退版本。对于Git的配置和命令行工具的使用也给出了指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

初识git

git是分布式版本控制系统,每个电脑上都可以有完整的项目,一个电脑崩溃了,可以直接在服务器上拉取,或者在同事电脑上拉取。缺点是占内存大。git是最好用的分布式版本控制系统

svn是集成式版本控制系统,一旦服务器崩溃,整个项目都没了。但是保密性强。

git工作原理:

        首先了解git四个工作区

workspace:工作区,就是平时放项目代码的地方

Index/Stage:暂存区,就是临时存放你的变动,事实上,它只是一个文件,保存即将提交到文件列表信息

respository:仓库(或本地仓库),就是安全存放数据的位置。这里面有你提交到所有版本的数据

其中HEAD指向最新放入仓库的版本

remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换

Index/Stage、respository不需要管,只需要用命令行工具去操作

四个工作区转换关系如下图 

80c852964daa43c09f7ccf62fa83ba89.png

 linux命令

3790207b87e84f9bba963a6bd3d1a212.png

 windows下clear清屏是cls

rm -rf /不能在linux下使用,循环递归删除文件

reset重新加载终端,更clear差不多

git配置

环境变量配不配都没有关系,因为安装时就已经默认配置好,可以直接右键调用

git config -l 查看用户配置

git config --system --list 查看系统配置(安装目录下有一个git/etc/config文件,配置会保存在这里)

 git config --global --list 查看用户全局配置(文件下,有一个.gitconfig,配置会保存在这里c盘users/cmq)

git config --global user.name "用户名"

git config --global user.email 邮箱

git命令

git文件状态

unstaged 修改的文件状态为“未暂存”,

untracked 新创建的文件状态为“未跟踪”

staged 添加到暂存区的文件状态为“已暂存”

可以使用git status命令查看文件状态

7a86df94e37e40d098237c0e7996da9a.png

忽略管理

git项目目录下,新建.gitignore文件,其中列出忽略文件的模式

本地仓库基础指令

git init 初始化git项目,将生成一个隐藏.git目录

git add .  将所有文件到暂存区,也可以写多个文件名,如git add a.txt b.txt c.txt

git commit -m “提示内容”(将暂存区的所有内容,提交到本地仓库)

git log 查看本地现有的commit提交历史

git log --pretty=oneline --abbrev-commit --all --graph 这条命令查看历史记录更加简洁

git reset --hard commitID 回退到指定的commitID版本(鼠标选中加鼠标滚轮就是复制粘贴)

git reflog 可以查看已经被删除的提交记录

git show 查看最后一次提交的文件及内容,可以指定文件

git diff 在提交之前执行,查看被修改过的文件及内容

git checkout . 撤销没有被add的修改,可以指定文件

git stash 比如应该写在次分支上的代码,意外写在了主分支上,就用这个指令将现在的代码暂时挂到内存中,再切换到目标次分支上执行,git stash pop指令

git分支指令

git branch 查看所有分支

git branch 分支名 创建新分支

git checkout 分支名 切换分支

git checkout -b 分支名 创建并切换新分支

git branch -d 分支名删除分支(不能删除当前分支,若没有合并到其它分支时,尝试删除会失败,强制删除改用-D参数)

git merge 分支 (例如在master分支上执行git merge dev 表示将dev分支合并到master上。另外如果合并代码发生冲突,需要程序员手动解决冲突,再add commit后,就合并了)

远程仓库指令

6f5a076186cc432787fdfdec9f5da13b.png

注册gitee,完善个人信息(github服务器在国外,速度慢。gitlab需要部署,公司为了保密而使用)

配置SSH公钥后用 ssh-T git@gitee.com 验证一下

git remote add  origin ssh地址 ssh在gitee上建立仓库后获取(origin是给远程仓库取的名字)

git remote 查看是否连上远程仓库

git push -f --set-upstream origin master  将本地仓库上推进远程仓库(-f表示,远程和本地推送的代码冲突时,用本地代码强制覆盖掉。--set-upstream表示建立本地分支和远程分支的关联)

git push origin master 等同于git push 远程仓库 本地分支:远程分支。建立关联后,可以直接写git push

git branch -vv 查看远程分支和本地分支的关联

git clone 远程仓库https url地址

git pull origin master 将远程仓库的最新的更新拉取到本地

git pull origin master --allow-unrelated-histories 远程仓库中有着本地仓库没有的文件的情况下使用

git merge origin master 将远程仓库的commit抓取到本地

57a0d2e5f01c421db88af281a6c23ca2.png

当本地和远程发生冲突时,先执行pull在本地手动解决掉冲突,再add commit push

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值