IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 几乎零基础的git入门级分享 -> 正文阅读

[开发工具]几乎零基础的git入门级分享

写在最前面:

特意抽出时间学习git的原因是之后要攻读软件工程学位的博士,而git是大型软件开发很难绕过的一个东西。很惭愧,从大一开始接触计算机起的这四年中,居然从未给开源软件贡献过任何一行代码,也没有正式参与过大型软件的开发,仅仅是用于平时大作业或者下载论文源码,网页版的github已经足够满足需求。但是,在下一阶段的学习中,这肯定是不够滴,据我观察组内也是用自己搭建的git管理项目代码。本人习惯于先把早晚要做的事做完,再做别的事,所以也就有了这篇博客的诞生。
本文将记录一个仅仅只有网页版github经验的人的git入门过程。

git的作用

不使用git时,可以在名字中添加含有修改日期时间的信息,在每次修改时先复制要修改的文件,然后修改日期信息为当前时间,即可做到简单的版本管理。在单人使用时还算可以,但是如果多人协作开发,难免造成很多局限。
在这里插入图片描述

Git是一个分布式版本管理系统,初衷是为了更好地管理Linux内核开发。

Git可以在任何时间点,把文档的状态作为更新记录保存起来。因此可以把编辑过的文档复原到以前的状态,也可以显示编辑前后的内容差异。

而且,编辑旧文件后,试图覆盖较新的文件的时候(即上传文件到服务器时),系统会发出警告,因此可以避免在无意中覆盖了他人的编辑内容。

一些概念

Repository(仓库):记录文件或目录状态的地方,存储着内容修改的历史记录。在仓库的管理下,把文件和目录修改的历史记录放在对应的目录下。

Git的仓库分为远程仓库和本地仓库两种。

远程仓库: 位于实验室服务器或github上,为了多人共享而建立的Repository。
本地仓库: 为了方便用户个人使用,在自己的机器上配置的Repository。

创建本地仓库的方法有两种:一种是创建全新的仓库,另一种是复制(git clone)远程仓库。在项目中一般是复制(git clone)远程仓库。

push:若要把文件或目录的添加和变更保存到Repository,就需要进行push(提交)。执行push后,数据库中会生成上次提交的状态与当前状态的差异记录(也被称为revision)。

执行push时,系统会要求输入提交信息。这些信息是为了方便其他人能够方便地查看你的修改内容,在空白的提交信息下执行的push会被拒绝。标准的提交信息的格式如下:

第1行:提交修改内容的摘要
第2行:空行
第3行以后:修改的理由

工作树和索引

stage unstage:未被Git跟踪的状态为unstage状态

已经被Git跟踪的状态为stage状态,因此包括staging状态和staged状态

git配置和使用

全局设置name和email:本地电脑所有的git仓库都会使用此配置,对特定的仓库可以指定其他用户名和邮箱。

git config --global user.name zhangxin00 
git config --global user.email hnuzhangxin@163.com

将当前文件夹变为一个可以管理的仓库:

pwd //查看当前路径
git init //这个目录变成git可以管理的仓库(增加隐藏的.git文件)

当前文件夹是工作区,将文件add到.git中才可以用git管理:

git add read.txt //add read.txt
git add .  //add all files

之后,需要将暂存区的所有文件提交到仓库的当前分支(默认为master,如果有别的分支也可以提交):

git commit -m "add txt file"

-m后面引号内的内容是本次提交的说明,上面的概念中提过,该内容不能为空。

要随时查看工作区的状态,这条在整个过程中随时可以输入:

git status

git checkout可以用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”:

git checkout -- test.txt

修改暂存区(add了,还没commit):

git reset HEAD read.txt //当前版本HEAD,上一版本HEAD^,上上版本HEAD^^)
git reset --hard commit_id(git reflog获取commit_id)

从仓库中删除某文件:

git rm test.txt
git commit -m "delete test.txt"

git push

origin是推送的远程库的默认名字,可以改成别的,如果要改成别的,命令中的origin都要换成你自己要起的名字。 使用以下命令可以将本地仓库和远程仓库关联起来:

git remote add origin http://XXX
git push origin 本地分支名:远程分支名(可以省略远程分支名)
git push -u origin master //需要输入用户名和密码
git push origion master  //第二次及以后可以简化命令

我们需要把远程仓库的最新代码克隆下来(此命令在你所要存放代码的目录下的终端运行,比如我要放在/home/github下,打开/home/github下的终端输入命令,那么克隆的代码路径为:/home/github/test1):

git clone http://192.168.1.3/zhangmi/test1.git

在这里,暂时先不考虑多分支了吧,这个暑假想先把基本命令玩熟。

查看远程仓库信息:

git remote
git remote -v //详细版

push代码到remote:

git push origin XXX(分支名)
git push origin master

//push的前提是你的版本必须最新,如果你push之前别人先push了,那你要先pull才能push
git pull origin 分支名

运行实例

配置username和email,查看git status:
在这里插入图片描述
changes not staged for commit: 删除了某文件夹,但是git没有记录到,使用git rm在.git中将其删除即可:
在这里插入图片描述
创建了文件,但是git没add
在这里插入图片描述
全部commit之后就可以push了
在这里插入图片描述
登录网页端,发现github仓库(remote repository)的内容也更新了
在这里插入图片描述
git push的时候有时候会报错,因为可能remote repository被别人改动了,你本地的不是最新版本,需要先git pull:
在这里插入图片描述
删除本地仓库 rm -rf .git
在这里插入图片描述
本地修改一些文件试试:
在这里插入图片描述

常用debug

其实下面这些报错,试了几次,大多数时候等会自己就好了

//ssl认证
git config --global http.sslVerify "false"
//取消代理
git config --global --unset http.proxy
git config --global --unset https.proxy

//重命名
 git branch -m oldBranchName newBranchName
 //通常是:
 git branch -m main master

好吧,我觉得这些东西已经可以满足目前的需求了(本地管理个人网站,而不用只依赖网页端编辑),branch merge checkout等操作目前好像完全用不到,按照按需学习的指导思想,之后再说~

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-06-01 15:24:57  更:2022-06-01 15:25:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/14 15:13:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码