【无标题】手把手 上手Git

本文是一篇针对Git的实战学习笔记,涵盖了从工作区、暂存区到本地库的基本操作,包括初始化、添加、提交、版本穿梭、分支管理以及与远程库的交互。通过实例详细解释了如何使用Git进行版本控制,包括解决冲突和使用Git进行代码推送、拉取及克隆。此外,还介绍了Git的一些常用命令和解决空文件夹问题的方法。
摘要由CSDN通过智能技术生成

参考教程:尚硅谷
默认安装了Git,会点击“Git Bash Here”
本文主为记录自己的git学习实操过程,很小白

工作区(就是自己的本地磁盘、文件目录)→暂存区(不产生版本记录)→本地库(在本地的版本库≠GitHub上存在的库)


在本地的Git操作

初始化

git init	//在使用这条指令的本地目录下 创建Git库,即生成.git文件

暂存区

  1. 把问件从本地库添加到暂存区
git add .	//所有文件
git add hello.txt	//精准到某一个文件
  1. 暂存区的“文件”可删除
git rm --cached hello.txt

也“只”能删存储区的,所以commit时稍微注意下(提交到本地库后,其实也能删除 相对麻烦些罢了)

  1. 查看文件的状态

状态:有没有commits,在暂存区和不在暂存区的文件有哪些
已经提交到本地库的文件被修改但未再次提交时,用该命令,会显示没提交(此时的文件相当于新的历史版本)

git status	//使用这条指令,不会显示出已提交到本地库的文件

只要文件修改,就可以查看文件状态

  1. 查看文件的内容
cat hello.txt

查看的是指针指向的版本,如HEAD->master出现在最新的版本,cat显示的就是最新的那版hello.txt

本地库

  1. 把暂存区的文件提交到本地库中,这样就有了版本记录(本地的)
    注:添加add(工作区→暂存区),提交commit(暂存区→本地库)
git commit -m "这是我的第一次提交(这个双引号里写的是日志信息)" hello.txt
//当暂存区有好几个文件时,这样的格式可以准确提交某一个文件
  1. 查看日志
git reflog
git log			//详细的,如会显示提交者的信息

版本穿梭

可以往前/往后穿梭。

git reflog #查看各次提交的信息(这里主要看版本号)
			   #找到你要穿梭到的版本的版本
git reset --hard 版本号	#穿梭版本成功
			   #可以再次git reflog查看HEAD指针指向的版本


在这里插入图片描述

分支

查看&创建&切换

在这里插入图片描述
在别的分支上修改了代码,也要add、commit。

合并(正常)

背景:如在hot-fix分支下改了hello.txt的内容,需要合并分支。

# 切换到master
git checkout master

↑此时,cat hello.txt显示的内容并不是hot-fix里面修改了的,而是原来master的。

# 合并:把…分支合并到当前分支
git merge hot-fix

合并(冲突)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
上部分红圈:当前分支的代码;第二部分:要合并的代码。
此时,显示(master|MERGING)
解决,人为vim修改hello.txt。
【git不知道要保留哪部分】
然后,add、commit(这个commit 不能带文件名)。

这个合并,只是改master的代码。(只改你合并的分支,不该变合并过来的分支)。

远程分支

# 查看
git branch #本地分支
git branch -r #远程分支-->也可以git remote origin,origin具体是什么用git remote得到
git branch -a # 所有分支

把代码推到Github

注:分支之类的内容本文暂不涉及,因本文主要是为能体验、实现推送代码,拉取等基本操作

建远程库&取远程库别名

  1. 在github上建远程库,名字尽量和本地的目录名字一样
  2. 创建好的远程库有两个链接HTTPS和SSH(一般复制HTTPS的
  3. 创建别名:链接太长 不好记
git remote -v		//查看现在的别名
git remote add forgit https://balabala		//后面两项分别是 取的别名(最好和库名保持一致)、远程库的链接

推送本地库到远程库

git push forgit master		//格式:git push 别名(用链接也行) 分支(本文环境下,用master就行)
//意思是,把本地的master分支推送到forgit这个远程库中(forgit是别名)

因网络问题,很可能失败, 可多试几次

拉取远程库到本地库

使用场景:远程库被别人改了,本地库“落后”了,想跟上远程库的节奏
拉取动作,会自动提交本地库,可用git status验证

git pull forgit master
//意思是,把远程库的master分支过来

克隆远程仓库到本

  1. 克隆,不需要登陆账号
  2. 在本地目录(没有.git文件夹的)下”Git Bash Here“,输入git clone 仓库链接
  3. 本地目录下会出现.git何仓库文件
  4. clone干的事情:①拉取代码 ②初始化本地库(即有.git文件夹)③创建别名(默认为origin)
  5. clone下来项目之后需要提交到自己的仓库,做如下操作(在clone下来的项目的目录下)
rm -r .git		#删除原有git信息,有问题一直回车即可
git init		#初始化.git
#之后就当作是自己的项目来正常操作

码云

就是用GitHub仓库的HTTPS链接导入,而且导入成功后,可点击码云的仓库名后面的”刷新“,实现同步GitHub上的新版本

其他命令

else

mkdir gitTraining		#创建gitTraining文件夹
cd gitTraining			#进入gitTraining文件夹
touch helloGit.txt		#创建helloGit.txt文件

git remote add origin https://sample.git
#这样就将https://sample.git添加为远程仓库,并将其命名为origin
#"添加远程仓库"-->给远程仓库(链接)取别名

git push origin master master
#格式:git push 远程仓库名 本地分支名 远程分支名

git pull origin master:master -f
#将远程仓库origin的master分支的内容拉取到本地master分支
#git pull 远程主机名 远程分支名:本地分支名
#强制拉取需要用到-f参数

git记录可视化

git log --graph --all

遇到的坑

git不能添加空文件夹

解决方法:为空文件夹添加.gitkeep文件(这个文件它本身是没有意义的,git好像也没有赋予它特殊使命,更像是团队使用者之间的一种约定,仅仅是为了标记这个空的文件夹是需要添加到仓库)

find ./ -type d -empty -exec touch {}/.gitkeep \;
# 为该目录下的所有空文件夹添加.gitkeep文件(含.git中的空文件夹

find . -type d -empty		#找到该目录下所有空文件夹

22.9.12目前这些够我体验git和初步提交版本(待更新)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值