git概念理解和简明教程【入门级】

这篇博客介绍了Git的基本概念和操作,包括工作区、暂存区和HEAD的理解,以及从初始化本地仓库到提交代码到远程仓库的完整流程。详细阐述了git常用命令,如gitinit、gitadd、gitcommit、gitpush等,并讲解了如何处理git克隆单个文件夹和解决提交时的代理问题。此外,还提供了解决GitHub推送代码时遇到代理问题的解决方案。
摘要由CSDN通过智能技术生成

git十分钟简明教程

对于新手,推荐以git简明操作的教程,这个便于对git有个简单的全局了解。

git中工作区、暂存区和HEAD的理解

在这里插入图片描述

git中本地仓库维护的三个 “树” 分别是工作区、暂存区(Index)和HEAD。

工作区指的就是电脑文件夹目录下你能看到的文件和文件夹;

暂存区指的就是你工作区中的文件提交到本地仓库中的一个过渡区域;HEAD指的就是你最后一次commit提交的结果。git还有一个版本库的概念,是工作区下的一个隐藏目录 .git ,该文件夹不属于工作区,指的是git版本库。

git操作的流程图理解以及常用命令

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B3nYYcyd-1651566945579)(C:\Users\sduzj\AppData\Roaming\Typora\typora-user-images\image-20211209170517309.png)]

第一次提交代码到远程仓库的命令

git init 在项目目录下初始化一个本地仓库

git add . 将工作区内的所有文件都添加到暂存区中,注意文件的大小有限制,如果太大了考虑添加一个 .gitignore 文件

git commit -m 'first commit' 将暂存区中的文件提交到本地仓库,'first commit' 指的是提交的描述

git remote add origin url 本地仓库链接远程仓库,url指的是远程仓库的地址,origin指的是给这个仓库地址起了个别名

git push origin master 将本地仓库master分支的内容推送到远程仓库

git相关命令

git checkout 用于切换分支或恢复工作区文件,将HEAD树中文件覆盖掉工作区中的文件

git checkout -- filename 是将本地仓库版本库中HEAD树中的文件覆盖工作区中的文件,filename是文件名

git fetch 用于从远程仓库分支获取代码,执行这条命令后需要执行 git merge 将远程分支合并到本地分支

git clone 是指将远程仓库的代码拉取到本地,默认是拉取远程master分支,相当于是拷贝一个项目

git pull origin master:test 是指拉取origin远程仓库master分支的代码,再与本地的test分支合并;可以等价为

git fetch origin master:test
git merge test

git branch :查看本地当前分支
git branch -r :查看远程分支
git branch -a :查看所有分支
git branch test :新建一个test分支
git checkout test :切换到test分支
git branch -m test test1: 将本地test分支的名字修改为test1,注意只改动的是本地分支,远程分支并没有改
git branch -D test :删除本地分支test
git push origin --delete test: 删除远程分支test

git status: 用于显示工作区和暂存区的状态。显示Index文件和当前HEAD提交之间的差异,这是通过 git commit 命令提交的;在工作区和Index文件之间有差异的路径以及工作区中没有被git追踪的路径,这是在git commit命令前通过 git add 命令提交的

git rm filename :直接删除文件并将该操作完后结果add进暂存区,等于直接从暂存区移除指定文件filename,工作区中也删除了;如果需要在工作区中保存该文件,可以 git rm filename --cached

git diff :比较的是当前工作区文件和暂存区文件的差异
git diff --cachedgit diff --staged :比较的是暂存区文件和HEAD之间的差异
git diff HEAD :比较的是工作区文件和HEAD之间的差异
git diff test1 test2 :比较的是本地分支test1和test2之间的差异

git reset --hard <commit> :将当前分支重设到指定的 <commit> ,并更新Index和工作目录。这个<commit> 可以通过 git log 查询到

当使用 git clone 拉取远程仓库默认分支后,想继续拉取远程仓库的另一个分支,应该 git checkout -b test origin/test ,意思是在本地创建一个test分支用来跟踪远程的test分支。这时本地的test分支代码就是远程的test分支代码

git克隆单个文件夹

  1. 本地初始化一个新的仓库接收克隆的文件夹: git init test && cd test 本地初始化仓库,仓库名为test,并进入到test文件夹中
  2. 设置允许克隆子目录: git config core.sparsecheckout true
  3. 设置要克隆的仓库的子目录路径:echo 'path' >> .git/info/sparse-checkout path为路径,比如克隆的子目录是 main 文件夹,那么就是 echo 'main*' >> .git/info/sparse-checkout
  4. 本地仓库链接远程仓库:git remote add origin url url为远程仓库的ssh地址
  5. 克隆代码:git pull origin master

git提交代码到Github时的代理问题

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9P4h3MrV-1651566945580)(C:\Users\sduzj\AppData\Roaming\Typora\typora-user-images\image-20211209185654166.png)]

推送代码到github时,由于开了代理,因此需要在推送前也在终端开启代理,需要设置

export all_proxy='socks5://127.0.0.1:1081' 这里的 socks5 代表的是采用socks5的代理协议,127.0.0.1 代表主机地址,1081 指的是端口,这个端口要在开的代理软件中查看自己电脑用哪个端口进行代理的。这样操作必须每次打开git bash终端推送时,都设置一遍。

可以选择对github进行代理

git config --global http.https://github.com.proxy socks5://127.0.0.1:1081
git config --global https.https://github.com.proxy socks5://127.0.0.1:1081
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

傻fufu滴人儿~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值