Git的简单教程

Git简单教程

小白最近想做个自己的网站,于是先来研究一波Git,放一个比较详细的教程参看https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
以下是自己总结的

一、git安装配置

先从官网下载windows版的然后默认配置安装,这里就略过了

配置用户信息

点击git-bash,会弹出命令行,输入

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

–global:添加了此命令,那么更改的配置文件就是位于用户主目录下的,以后的项目都将默认使用此用户信息。若需要为某个项目使用其他用户信息,只需要去掉–global重新配置即可,新的配置保存在当前项目的.git/config中。

查看配置信息

$ git config --list   //也可以将--list换为具体的某个环境变量如:user.name

创建repo

选择一个目录,可以用已有的或者mkdir新建,cd进去以后使用git init把当前目录作为仓库并初始化
切换到目录

二、基本使用

上传

初始化后,目录下会生成一个名为.git的目录,我们要将当前目录下的几个文件纳入git版本控制下,需要先用git add让git对文件开始跟踪,之后提交。(注意要放在你建立的仓库文件夹下才能跟踪)
把一个文件放到Git仓库只需要两步
使用 git add 命令将想要快照的内容写入缓存区, 而执行 git commit 将缓存区内容添加到仓库中。

$ git add readme.txt	//把readme添加到仓库,一次commit可以多次add
$ git commit -m '此版本项目说明'	//-m后面输入的是本次提交的说明,这样你就能从历史记录里方便地找到改动记录。

查看项目当前状态

$ git status -s                  //-s:简短输出

查看版本改动

$ git diff            //尚未缓存的改动
$ git diff --cached   //已缓存的改动
$ git diff HEAD       //已缓存和未缓存的所有改动
$ git diff --stat     //显示摘要

查看提交历史

$ git log

–oneline 查看历史记录简介版本
–graph 查看什么时候出现了分支、合并(后面写)
–reverse 逆向显示日志
–author 指定具体某一个作者
–since 和 --before 指定日期
–decorate 查看标签
其他log命令:https://git-scm.com/docs/git-log

克隆仓库

$ git clone <repo> <directory>    //directory:本地目录

撤销修改

$ git checkout -- readme.txt

命令git checkout – readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。

git reset HEAD <file>	//命令用于取消已缓存的内容,HEAD表示最新版本

删除

$ rm test.txt

一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用rm命令删了。在add以后,Git知道你删除了文件,因此,工作区和版本库就不一致了,git status命令会立刻告诉你哪些文件被删除了。现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit。文件就从版本库中被删除了。

另一种情况是删错了

$ git checkout -- test.txt

回退到上一个状态

三、远程仓库

终于到了使用github这一步了,写博不易
首先,注册一个github账户,本地Git仓库和GitHub仓库之间的传输是通过SSH加密,所以我们需要配置验证信息:

1. 创建ssh

检查ssh
打开终端,运行 cd ~/.ssh
如果路径下无文件跳过下一步操作,如果有文件代表已有ssh key,需要进行备份
备份已有ssh

mkdir key_backup
mv id_rsa* key_backup

生成ssh key

ssh-keygen -t rsa -C "email@example.com"  //注册的邮箱

之后回车,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对。

2. 将ssh key添加到github上

在setting里面找到ssh and GPG keys,输入id_rsa.pub里的内容,title随意命名
在这里插入图片描述

3. 测试链接是否成功

在终端输入

ssh -T git@github.com

这里会要求你输入SSH key密码,如果刚才生成SSH key时未输入密码,密码就为空。
我这里报了一个错

The authenticity of host ‘github.com (13.250.177.223)’ can’t be established.

搜索以后发现是缺少文件,输yes即可

4. New repository(新建仓库)

在github右上角找到你的仓库,创建一个新的仓库
创建好以后,根据提示,关联本地和GitHub仓库

$ git remote add origin https://github.com/yuanfeisiyuetian/blogrepo.git	//找自己的复制,这个是我的仓库
$ git push -u origin master

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。

从远程仓库下载新分支与数据

git fetch

从远程仓库提取数据并尝试合并到当前分支

git pull

四、分支管理

几乎每种版本控制系统都支持类似的分支,使用分支从开发主线中分离,在不影响主线的同时继续工作
创建分支命令:git branch (branchname)

切换分支命令:git checkout (branchname)

git checkout命令加上-b参数表示创建并切换,相当于以上两条命令

列出分支命令:

git branch	#当前分支前面会标一个*号

合并分支命令:git merge

–no-ff参数,表示禁用Fast forward,可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。

删除分支命令:git branch -d (branchname)

合并冲突

就是些时间问题,我个人开发应该不太会遇到叭大概
emmmm原理请参考最上面的链接

git status可以查看冲突文件,手动修改以后重新add,commit
git log 可以查看分支合并情况

其他

bug分支

详细说明
修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;
当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场。

Feature分支

详细说明
开发一个新feature,最好新建一个分支;
如果要丢弃一个没有被合并过的分支,可以通过git branch -D 强行删除。

多人协作

详细说明
查看远程库信息,使用git remote -v;
本地新建的分支如果不推送到远程,对其他人就是不可见的;
从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;
在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;
建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;
从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。

rebase

详细说明
rebase操作可以把本地未push的分叉提交历史整理成直线;
rebase的目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比。

重要的一点!

把要忽略的文件名填进.gitignore,Git就会自动忽略这些文件
.gitignore文件的编写,emmmm以后更新

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ava实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),可运行高分资源 Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现
C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。下面详细介绍C语言的基本概念和语法。 1. 变量和数据类型 在C语言中,变量用于存储数据,数据类型用于定义变量的类型和范围。C语言支持多种数据类型,包括基本数据类型(如int、float、char等)和复合数据类型(如结构体、联合等)。 2. 运算符 C语言中常用的运算符包括算术运算符(如+、、、/等)、关系运算符(如==、!=、、=、<、<=等)、逻辑运算符(如&&、||、!等)。此外,还有位运算符(如&、|、^等)和指针运算符(如、等)。 3. 控制结构 C语言中常用的控制结构包括if语句、循环语句(如for、while等)和switch语句。通过这些控制结构,可以实现程序的分支、循环和多路选择等功能。 4. 函数 函数是C语言中用于封装代码的单元,可以实现代码的复用和模块化。C语言中定义函数使用关键字“void”或返回值类型(如int、float等),并通过“{”和“}”括起来的代码块来实现函数的功能。 5. 指针 指针是C语言中用于存储变量地址的变量。通过指针,可以实现对内存的间接访问和修改。C语言中定义指针使用星号()符号,指向数组、字符串和结构体等数据结构时,还需要注意数组名和字符串常量的特殊性质。 6. 数组和字符串 数组是C语言中用于存储同类型数据的结构,可以通过索引访问和修改数组中的元素。字符串是C语言中用于存储文本数据的特殊类型,通常以字符串常量的形式出现,用双引号("...")括起来,末尾自动添加'\0'字符。 7. 结构体和联合 结构体和联合是C语言中用于存储不同类型数据的复合数据类型。结构体由多个成员组成,每个成员可以是不同的数据类型;联合由多个变量组成,它们共用同一块内存空间。通过结构体和联合,可以实现数据的封装和抽象。 8. 文件操作 C语言中通过文件操作函数(如fopen、fclose、fread、fwrite等)实现对文件的读写操作。文件操作函数通常返回文件指针,用于表示打开的文件。通过文件指针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值