git学习记录

git学习记录

git是什么

git是分布式版本控制系统
在这里插入图片描述
主要包含工作区、暂存区、本地仓库、远程仓库

  • 工作区是自己电脑上看到的目录,在一个目录下使用git init进行初始化本地仓库在这里插入图片描述

  • 工作区有一个隐藏目录.git,是git的版本库,版本库中包含了暂存区、git自动创建的第一个分支master、指向分支master的指针HEAD
    在这里插入图片描述

  • 暂存区(stage、index) 位于工作区的隐藏目录

  • 本地仓库 位于工作区的隐藏目录

  • 远程仓库

git怎么用

基础命令

命令:git init
作用:在任意一个目录下使用git init,初始化本地仓库
命令:git add
作用:把文件添加到暂存区,文件一定要在初始化后的git仓库中才行
命令:git commit -m message
作用:把暂存区的文件添加到本地仓库,message是注释信息
命令:git status
作用:查看git状态
命令:git log [option]
option可选的有:–all 显示所有分支、–pretty=oneline 将记录显示为一行、–abbrev-commit 缩略显示commit_id、–graph 以图的形式显示、–decorate 显示分支,以上选择可以任意组合使用
作用:查看历史记录,穿越前用git log 查看历史记录以便确定要回退到哪个版本
命令:git reflog
作用:查看命令历史, 重返未来时可以用git reflog查看命令历史,以便确定要返回到哪个版本
命令:git diff 文件名
作用:对比查看修改内容
命令:git reset —hard commit_id
作用:用于在各个版本间穿梭

在有些文件不想让git管理时,可以通过创建名为.gitignore的文件,在文件中写出要忽略的文件名,则这些文件就不会被git管理

分支

命令:git branch
作用:查看当前分支
命令:git branch 分支名
作用:创建分支
命令:git branch -d 分支名
作用:删除分支, git branch -d删不了时可以使用git branch -D进行强制删除
命令:git switch 分支名 或者 git checkout 分支名
作用:切换分支
命令:git merge 分支A
作用:合并分支A到当前分支,如果合并时存在冲突,则要先在冲突文件中解决冲突随后进行add和commit

git中head表示当前版本,head指向的分支是当前分支
git reset HEAD 文件名 用于取消暂存的文件,将已经暂存的文件恢复到未暂存的状态
git checkout – 文件名 丢弃工作区的修改让工作区的文件回到最近的一次git add或git commit的状态

远程仓库相关

命令:git remote add 远程仓库名称 仓库路径
作用:添加远程仓库,远程仓库名称一般默认是origin
命令:git remote
作用:查看远程仓库
命令:git push 【-f】【–set-upstream】远程仓库名 本地分支名【:远程分支名】
作用:将本地仓库分支推送到远程仓库,如果远程分支名和本地分支名相同,则远程分支名可以省略
-f是强制覆盖
–set-upstream是建立本地分支和远程分支的关联关系,如果当前分支已经和远程分支关联,则可以可以直接使用git push,省去本地分支名和远程分支名
命令:git clone 仓库路径 【本地目录】
作用:将远端仓库克隆到本地,本地目录可以省略,会自动生成一个目录,默认克隆的是master分支,也可以指定分支
命令:git fetch 【远程仓库名】 【远程分支名】
作用:将远程仓库的抓取到本地,不会自动合并
命令:git pull 【远程仓库名】 【远程分支名】
作用:将远程仓库的拉取到本地,会自动合并

解决更新冲突,如果A、B用户修改了同一个文件的同一行,而且A用户已经push到远程仓库了,B用户也进行了commit,那么此时B用户进行push时,会出现下图所示,这时需要先执行git pull --no-rebase,然后在本地修改冲突文件后commit后再进行push即可进行更新。

在这里插入图片描述

clone VS fetch VS pull

git clone 从远程仓库克隆一个本地库到本地,使用时需要指定远程仓库的地址和本地库的名称。一般是在第一次获取远程仓库的代码时使用,默认克隆主分支
git fetch从远程仓库获取最新的代码到本地仓库,但是不会自动合并到本地分支,需要手动进行合并。一般是在需要更新代码但是不想立即合并的情况下使用。
git pull 从远程仓库获取最新的代码到本地仓库,并自动合并到本地分支。一般是在需要更新代码并且立即进行合并的情况下使用,相当于 git fetch + git merge

删除git管理的文件
在工作区直接删除或者在终端使用rm 文件名完成删除,然后如果确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit;如果是删错了,因为版本库里还有,所以可以用git checkout – 文件名 把误删的文件恢复到最新版本

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值