学习git版本控制系统,好逛github

Git是一个分布式版本控制工具,通常用来对软件开发过程中的源代码文件进行管理。通过Git仓库来存储和管理这些文件,Git仓库分为两种:

  • 本地仓库:开发人员自己电脑上的Git 仓库*

  • 远程仓库:远程服务器上的Git仓库

    1. 当安装Git后首先要做的事情是设置用户名称和email地址。这是非常重要的,因为每次Git提交都会使用该用户信息。 在Git命令行中执行下面命令: 设置用户信息

      git config --global user.name “用户名”
      git config --global user.email "用户邮箱" 
      git config --list 查看配置信息

    2. 创建本地空仓库(一般在任意路径下创建一个文件夹,进入文件夹后鼠标右击选Open Git Bash here

      git init // init 命令:初始化当前目录为仓库。
    3. git 的工作区域和文件状态

      git 的本地处理分为三个区域 1: 工作区 2: 暂存区 3: 本地仓库

工作区 : 本地的工作目录,就是本地仓库,就是有.git的文件夹(即有,git文件夹的目录才算是一个git目录,也即是一个git工作区)

暂存区:用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息,一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index);

本地仓库:git目录就是本地仓库,里面保存着我们git commit 提交的东西,就是git的版本库

git 的文件状态分为:1: 未跟踪 2: 未修改 3: 已修改 4: 已暂存

未跟踪: 就是我新创建的文件,没有被git管理起来的文件

未修改: 就是被git管理起来 但没有做出任何修改

已修改: 就是被修改过了,但是没有被放到暂存区

已暂存: 就是我们修改之后已经被添加到暂存区的文件

下面演示一下怎样将文件创建到仓库中,也将学习到各种命令

git status //该命令: 看一下我们目前仓库的状态
vim test.txt //用vim编辑器创建一个文件
git status //这时我们在看一下仓库的状态 就发现这时有一个未跟踪的文件
git add test.txt // 使用该命令将test.txt文件放到暂存区里
git commit -m "提交提示信息"  // 将文件交到仓库中保管(如果没有 -m参数的话 会自动将跳到vim的编辑器上,让我们在编写提示信息)
git log --oneline// 查看我们提交记录 --oneline参数就是我们方便查看记录
这里还有个知识点 就是通配符。比如: git add *.txt(表示将所以以.txt结尾的文件放到暂存区中)
                              git add .(将未被跟踪的文件全部放到暂存区中(也就是当前文件夹下所有文件添加到缓存区中))
git ls-files (查看暂仓库中文件的命令)          
git rm file (删除文件file在仓库中,暂存区,工作区中 )

当commit的内容有错误,需要回撤到之前的某个版本时 这是要用git reset命令

reset命令中参数区别如下:git reset --hard ()

区别
–hard:重置位置的同时,直接将 working Tree工作目录、 index 暂存区及 repository 都重置成目标Reset节点的內容,所以效果看起来等同于清空暂存区和工作区。
–soft:重置位置的同时,保留working Tree工作目录和index暂存区的内容,只让repository中的内容和 reset 目标节点保持一致,因此原节点和reset节点之间的【差异变更集】会放入index暂存区中(Staged files)。所以效果看起来就是工作目录的内容不变,暂存区原有的内容也不变,只是原节点和Reset节点之间的所有差异都会放到暂存区中。
–mixed(默认):重置位置的同时,只保留Working Tree工作目录的內容,但会将 Index暂存区 和 Repository 中的內容更改和reset目标节点一致,因此原节点和Reset节点之间的【差异变更集】会放入Working Tree工作目录中。所以效果看起来就是原节点和Reset节点之间的所有差异都会放到工作目录中。
使用场景
–hard:(1)放弃本地的所有改变,即去掉所有add到暂存区的文件和工作区的文件;(2) 抛弃目标节点(head)后的所有commit(之后所有的commit都不对)。
–soft:合并差异不大的commit,使整个演进线图更清晰。
–mixed(默认):(1)与2类似,合并相似的commit;(2)移除暂存区中的内容。(3)commit提交某些错误代码,不想再修改错误再commit(因为会留下一个错误commit点),可以回退到正确的commit点上,然后所有原节点和reset节点之间差异会返回工作目录,假如有个没必要的文件的话就可以直接删除了,再commit上去就OK了。
.gitignore忽略文件

在工程中,并不是所有文件都需要保存到版本库中的。在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件或目录。如果我们将文件已经提交到了本地仓库那么就不能将该文件放到.gitignore文件中

echo hellp > test.log
echo test.log > .gitignore
git status 当我们查看状态时,就只显示.gitignore该文件wei跟踪

.gitignore 的文件的匹配规则

git SSH配置和克隆仓库

首先进入文件夹.ssh 然后输入ssh-keygen -t rsa -b 4096 生成ssh密钥,然后回车,如果第一次配置密钥,接下来直接输入回车,然后输入密码。如果是配置过的,则需要输入新的文件名比如名为test这是为了防止覆盖掉原来的id_rsa默认生成的文件,文件后缀名.pub为公钥文件,没有后缀则是私钥文件。这时我们会发现.ssh文件夹下有test.pub和test文件,到这一不就可以复制.pub中的公钥内容,去github中设置了。如果是修改过默认的文件名的话,还需要去config文件去配置 在config中 我们将 Host github.com

HostName github.com

PreferredAuthentications publickey

IdentityFile ~/ .ssh/test

将这四句话配置到config文件中

关联本地仓库和远程仓库

git remote add origin git@github.com:(代码仓库路径) 命令意思: 添加一个远程仓库,origin是远程仓库的别名,一般默认的就是这个
git remote -v  查看当前仓库所对应的远程仓库的别名和地址
git branch -M main 指定分支的名称为main  现在默认为master
git push -u <远程仓库名> <远程分支名>:<本地分支名>将我们本地的master分支和远程仓库origin的master分支关联起来
gti pull <远程仓库名> <远程分支名>:<本地分支名> 也可以省略<远程仓库名> <远程分支名>:<本地分支名>表示拉取远程仓库名origin和分支master,作用是把远程仓库的指定分支拉取到本地在合并

小注意在实行push和pull命令时,如果有的参数省略了 说明用的名称是默认的仓库名origin和分支名:master

Pull:可以看作在远程仓库修改文件后然后执行git pull (远程仓库名) (远程仓库分支):(本地仓库分支)命令然后在本地仓库中也会显示修改内容

Push: 可以看作我们在关联远程仓库的本地仓库中修改文件 执行该命令时远程仓库会显示修改的文件

git 分支管理 (一个项目中分为一个主分支和多个其他分支,当多个开发人员进行开发时,首先再其他的分支上进行测试,开发,知道成功了,就将该分支合并到主分支上)

查看仓库中所有的分支: git branch

创建分支命令: git branch (分支名称)

切换不同的分支命令: git switch (分支名称)

合并分支的命令: git merge (被合并分支名称) 就是比如我们这里有两个分支分别为 main分支和dev分支 我们向将dev分支合并到main分支上,首先我们先切换到main分支上,然后再main分支上执行 git merge dev的命令

删除分支命令: gti branch -D (分支名称) 表示强制删除

github 用的就是git系统来管理它们的网站,这里需要区分一下,github和git是两个东西,github是一个社区,git是一个服务系统,github只支持git分布式系统,所以故名成为github。

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值