前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Git——从入门到入云

Git——从入门到入云

作者头像
小点点
发布2022-12-12 15:18:13
2520
发布2022-12-12 15:18:13
举报
文章被收录于专栏:小点点

文章目录

链接: 笔记

(一)Git——安装与初始化

安装

​ 安装其实就比较简单的,把Git下载过来,一直下一步就行,没什么难度。

命令

​ 接下来介绍一些简单的Git命令。

1.用户签名

​ 用户签名的作用就是告诉别人你是谁,方便区分不同的成员,具体方法如下所示

代码语言:javascript
复制
git config --global user.email "123@qq.com"
git config --global user.name "name"

​ --global 是让我们的用户签名到哪都可以用,而不只能在某一个文件夹用,省了蛮多事情。 ​ 然后具体操作如下所示。我们现在介绍一下如何查看自己设置成功了。

​ 先找到c盘,打开用户名文件夹,找到一个 .gitconfig 的文件夹,用记事本打开就可以了。打开之后如果显示是这样的,就是说明成功了。

2.初始化

​ 这个初始化呢,其实就是选择一个希望被git管理的文件夹,然后将其初始化,这样我们就得到了一个被git管理的文件夹,后期在文件夹中的操作都能被记录下来。

步骤

  1. 找到一个希望被管理的文件夹
  2. 在文件夹单击右键,点开 Git Bash Here (或者直接通过cd 进入)
  3. 输入指令
代码语言:javascript
复制
git init

​ 之后就能到文件夹里看到一个这样隐藏的文件了。(要在文件管理里面打开显示隐藏文件)

​ 然后再介绍一些简单的常用指令。而且在git里面,按上键可以回到之前的命令,感觉特别舒服。

代码语言:javascript
复制
# 这个就是进入命令,(可以用Tab键补全)
cd first/
# 这个就是回到上一级
cd ..
# 这个就是查看文件夹
ls
# 这个就是查看所有文件夹
ls -a

(二)Git——基本操作

工作机制

​ Git的工作机制主要分为三个区,工作区,暂存区,历史区。工作区很好理解,就是我们工作的地方,然后暂存区,就是用来放我们写好的代码,最终把成稿提交到版本库。之所以不直接提交到版本库就是怕到时候版本库特别乱,到处都是各个版本的修订版,具体如下图所示。

托管平台

  • 局域网(内网)
    • gitlab
  • 公网(外网)
    • gitlab
    • github
    • gitee

​ 内网主要就是安全,但是搭建成本较高。而外网成本不高,但是不安全。为此,外网有私有和共有之分,顾名思义,私有的话你必须有相应的权限才能进入,确保了一定的安全性。

命令

提交暂存区

git add

​ 这个就是将我们的文件或者文件夹添加到暂存区的命令,主要有下面几种。

代码语言:javascript
复制
# 添加一个文件
git add first.txt
# 添加一个文件夹(非空)
git add css/
# 添加所有文件
git add --all
git add .

查看

git status

​ 这个就是查看我们现在的状态的代码。我们需要知道,绿色的就代表现在这个文件夹在暂存区。

代码语言:javascript
复制
git status

删除暂存区

git rm --cached

​ 这个是用来删除暂存区的文件的,其实在上面也有提示。

代码语言:javascript
复制
git rm --cached

​ 这样就删除了,颜色变成红色。

提交历史区

git commit

​ 这个就是把我们在暂存区的代码放到历史区了。

代码语言:javascript
复制
git commit -m "first功能实现"

​ 如果没有加 -m,就会进入文件,它一定要你留下为什么提交这次记录才会让你走。这个时候,先按下i键,进入insert模式。

​ 然后写下这次的记录名称,按下ESC键,之后输入:wq(一定要半角的,不然输入不了)

查看记录

git log

​ 这个就能查看我们历史区的记录了,但是只能查看到指针之前的记录。

代码语言:javascript
复制
git log
git reflog

​ 这个就可以查看到所有的记录了。

代码语言:javascript
复制
git reflog

版本穿梭

git reset --hard
回退

​ 这个就是我们用来回退版本用的指令,其实就是改变HEAD指针的位置,然后文件直接会退到工作区。

代码语言:javascript
复制
# 回退到上一次
git reset --hard HEAD^
# 回退到多次前
git reset --hard HEAD^^
git reset --hard HEAD~2

​ 打开工作区文件,会发现确实回到了第一次提交的代码。

穿梭

​ 把HEAD改成之前版本的地址,就可以实现穿梭的操作,地址可以由git reflog查看。

代码语言:javascript
复制
git reset --hard 112154a
git reset --soft

​ 这个是软复位,主要功能就是把文件退到暂存区,主要用来改记录名称和为了历史区的修改,接下来我来展示一下第二种功能。

​ 可以看到,bug已经修复,然后历史区也是非常清晰的,没有两份提交记录。

git revert

​ 这个其实也算是版本穿梭,与git reset 不同的地方就在于这个命令是重新创建一个新的记录,但是内容却是你想回退版本的内容。可以看到,版本其实回到了2版本,但是却是多加了一条记录。

代码语言:javascript
复制
git revert HEAD

(三)Git——分支

分支概念

​ 分支的话,就是把我们整个文件夹分成一个一个独立的区域。当你完成A功能的时候,你就可以开一个B功能的分支区去开发,而当A功能需要修复的时候,就不会影响到B功能的开发,等B功能开发完了之后,再合并在一起就可以了。

创建/删除分支

git branch

​ 这个指令单独使用那就是查看当前分支。

代码语言:javascript
复制
git branch

​ 要是在后面加上分支的名称,就可以创建分支了。

代码语言:javascript
复制
git branch second

​ 要是在后面加上-d 和分支名称,就可以删除这个分支了。

代码语言:javascript
复制
git branch -d second

​ 要是加上-a 就能查看所有的分支

代码语言:javascript
复制
git branch -a

跳转分支

git checkout

​ 这个指令用来在各个分支跳转,后面加上分支名字就行。

代码语言:javascript
复制
 git checkout second

​ 然后在second里的提交什么的,是不会影响到master主分支的,其实就相当于把指针前移了一下,然后后续操作全在second这个工作区操作了,还是比较好理解的。

合并分支

git merge

​ 这个命令用来合并各个分支,其实就是简单的把master指针移动到second分支上,没有什么不好理解的,但是在合并过程中可能会有冲突的情况,我们在后面慢慢分析。

代码语言:javascript
复制
git merge second
合并分支冲突

​ 其实我们应该知道,在分支合并的时候还是比较容易出现冲突的,其中主要的原因就有在开发其他分支的时候主分支改变了。然后进行代码合并的时候,就会发现有两个地方改动了,这样就造成冲突,git就不知道怎么办了,这个时候就需要我们来手动合并了。

​ 遇到这样的问题,我们只需要把多余的符号删掉,再到master里面提交一下就好了。当然,也可以使用一些软件来智能帮助我们解决冲突。

(四)Git——团队协作

​ 这个团队协作就需要我们借助远端库了,这里我们借助的是Github,在此之前我们需要先去注册一下Github账号,在此就不做介绍了,比较简单。然后创建自己的仓库首先点击右上方的加号,点击New repository,然后取一个名字,创建就可以了。

推送

git remote add origin

代码语言:javascript
复制
git remote add origin https://github.com/xiaodian2/xdd_project.git

​ 这个就是推送的指令,origin 代表的是后面这一大串的地址。

代码语言:javascript
复制
git remote -v

​ 这个是查看我们origin代表的地址,关掉了Git,不想重新打过了。

git remote remove origin

代码语言:javascript
复制
git remote add origin

​ 这个就是删除origin代表的地址。

git push

代码语言:javascript
复制
git push origin master:master

​ 这个就是把我们的主分支master推送到origin地址上的master上去,可以省略后面的:master。第一次推送的话,可能需要绑定你的账号,输入密码就行,然后,你就可以拥有一个自己的GitHub仓库了。

代码语言:javascript
复制
git push -u origin master

​ 如果以后一直使用这个origin地址,那么这样就可以记录地址,以后就可以直接git put 了。

​ 然后需要修改的话,先到本地修改,然后提交,非常不建议在远端库直接修改,就算是修改了,也要及时更新自己的代码。不然可能会导致代码冲突,就像分支合并那样,解决办法其实也是一样的。

代码语言:javascript
复制
git push -f

​ 这个是强制推送,非常不建议使用,就当没学。

拉取

git pull

代码语言:javascript
复制
git pull origin master

​ 这个就是从远端库拉取代码到我们本地.

克隆

git clone

代码语言:javascript
复制
git clone https://github.com/xiaodian2/xdd_project.git

​ 这个就是用来克隆别人代码的,也就是白嫖别人的代码。

冲突

​ 在团队协作中很容易出现冲突,主要分为两种。 ​ 第一种就是在修改不同的文件,当对方提交到了远端库之后,你要是再想提交你的代码,就必须要先拉取最新的代码,然后再提交你的代码。 ​ 第二种就是在修改同一个文件,当对方修改并提交到远端库之后,你想要去提交你的代码,这个时候别人提交的版本就会与自己的代码冲突,然后只能去拉取,这个时候就回到了合并分支冲突了,需要自己去决定保留谁的代码,然后再去推送。所以遇到这种情况,一般就需要提前协商好,

分支

​ 如果想要获取对方的分支。操作其实和主分支差不多,首先提交分支,然后别人拉取回来,就可以直接使用了。提交也是和master一样的。

代码语言:javascript
复制
# 提交分支。
git push origin second
# 然后别人拉取回来
git pull origin second
# 别人切换到分支
git checkout second

删除分支

​ 删除分支的原理就是推送一个空的分支到需要覆盖的分支上,这样就相当于删除了远端库的分支。

代码语言:javascript
复制
git push origin :bugfixed

跨团队

​ 跨团队协作,首先需要把别人的项目fork下来,这样自己就有了这个项目,当你修改之后,就需要去提交pull request。然后对方通过一下就行。我没两个账号,就不展示了。

Gitee

​ 和GitHub一样,就不介绍了。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • (一)Git——安装与初始化
    • 安装
      • 命令
        • 1.用户签名
        • 2.初始化
    • (二)Git——基本操作
      • 工作机制
        • 托管平台
          • 命令
            • 提交暂存区
            • 查看
            • 删除暂存区
            • 提交历史区
            • 查看记录
            • 版本穿梭
        • (三)Git——分支
          • 分支概念
            • 创建/删除分支
            • 跳转分支
            • 合并分支
        • (四)Git——团队协作
          • 推送
            • git remote add origin
            • git remote remove origin
            • git push
          • 拉取
            • git pull
          • 克隆
            • git clone
          • 冲突
            • 分支
              • 删除分支
            • 跨团队
              • Gitee
              相关产品与服务
              Prowork 团队协同
              ProWork 团队协同(以下简称 ProWork )是便捷高效的协同平台,为团队中的不同角色提供支持。团队成员可以通过日历、清单来规划每⽇的工作,同时管理者也可以通过统计报表随时掌握团队状况。ProWork 摒弃了僵化的流程,通过灵活轻量的任务管理体系,满足不同团队的实际情况,目前 ProWork 所有功能均可免费使用。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档