git基础入门(常见指令)

本文介绍了Git和GitHub的基础知识,包括创建仓库、提交修改、使用Issues和PullRequests进行协作、版本管理和搜索资源。同时,详细阐述了Git的安装配置、文件状态管理、远程仓库操作、分支管理和合并,以及重置和变基等核心概念和操作。
摘要由CSDN通过智能技术生成

什么是Gihub?

1.​Githu​b是一个代码/文件托管+保管+提交修改+评论修改的工具。

2.GitHub主要操作一:创建一个仓库。简单理解为创建一个新模块、新主题。在创建时需要指明仓库所有者、仓库名、仓库说明、保密性以及是否开源等。

3.Github主要操作二:上传文件或者文件夹。点击addfile添加空文件或者上传若干文件,/表示文件夹,文件夹不可为空。

4.Github主要操作三:贡献操作之提交疑问或者描述和总结(Issues)。基于查看过代码仓库的前提提交问题和提交说明,仓库创建者有权利关闭问题并和网友评论问题以及添加标签。

5.Github主要操作四:贡献操作之提交更改(Pull Requests)。对他人的项目进行更改。

6.Github主要操作五:开源项目可以随意使用,但是要在指定的开源协议下进行。如果超出协议范围则不被允许,甚至会被追究责任。

7.Github主要操作六:版本管理。在对项目进行更新后,若不符合预期,则可以退回原始版本。

8.Github主要操作七:搜索资源。

什么是Git?

        Git是一个分布式版本控制系统。GitHub、Gitlab、Gitee都是git的托管平台。Git最初是基于linux平台方便管理文件创建的,因此Git中的很多指令与linux相同。

一、安装与配置

1.下载与安装:

https://git-scm.com/download/

tips:对于小白来讲,安装的时候最好安装在C盘。一开始我安装在了C盘导致无法从Github上克隆,跟随教程进行了诸多尝试最后重装在了C盘一切问题迎刃而解。

2.使用入口

win:右键菜单—git bash

mac:终端窗口

3.基础配置

a.首次使用添加身份说明,使用以下两个命令:

  $ git config --global user.name "username"

  $ git config --global user.email "你的邮箱@example.com"

b.创建仓库

①在项目文件夹下使用git bash输入$git init,无需联网即可完成项目创建,在该仓库中可以使用任何git功能。此时仓库内会出现一个.git文件夹,该文件夹是用来管理版本的,禁止修改。

②使用他人项目创建仓库,get clone +URL 使用别人的项目。注意:在复制URL的时候会有https和ssh两种类型可选,https后续会有认证等其他步骤。

二、状态与提交版本

仓库中的文件共有四个状态,分别是:未跟踪、未修改、已修改、暂存。

1.跟踪

a.跟踪文件

$ git add <name>

作用:跟踪文件状态,当文件发生修改时,让系统能够记录文件修改之前的状态,可以随意切换不同的状态,避免文件修改后之前的版本丢失。当被设定跟踪之后,若不删除就会被一直跟踪。

b.跟踪当前目录

$ git add .

2.取消跟踪

a.rm删除

$ git rm <name>

b.保留但不跟踪

$ git rm-cache <name>

3.文件状态修改

a.将修改文件缓存

git add <file-name>

b.取消缓存

git reset HEAD <name>

c.提交缓存的修改

git commit(提交之后的文件是未修改、已缓存的文件)

d.git commit 具体操作 

①git commit 进入提交界面,

按" i "键进入编辑模式后输入提交内容,

然后esc退出编辑模式, 按" : "进入命令栏, 输入"wq"保存并退出.(类似于linux的shell操作)

②git commit -m ' 提交内容 '

在命令行中直接输入,不必进入编辑模式,相当于是便捷方式。

③git commit -a

连带未缓存文件一起提交

git commit -am '提交描述'

④git reset head~ --soft

该命令可以取消提交, 首次提交不可撤回.

e.查看状态

①git status

红色代表 已修改, 未缓存

绿色代表 已缓存

提交后, 则不显示

②git diff

详细查看文件的第几行第几个字母被修改了

③git log

查看提交历史信息

git log --all

查看所有分支的提交

结合graph食用更佳

git log --all --graph

git log--pretty

git log--pretty=oneline

自定义格式...

④git log--graph

        所有的版本控制系统都是只能跟踪文本文件的改动,比如txt文件、网页和代码等,无法跟踪图片和视频的改动。每一次改动文件,都会生成一个对应的版本号(用git reflog查看),如果前后两次提交文件没有发生改动,那么版本号也是不会改变的。选择对应的版本号(git reset --hard 版本号)即可回到该文件的对应状态。

三、远程仓库

        Git是一个分布式的版本控制系统,并不像SVN一样具有中心服务器,因此它无需联网即可在本地创建自己的仓库并执行命令。当需要同他人协作时,就需要将数据放到其他开发人员能连接的服务器上(如GitHub)。

1.链接远程仓库到本地

git remote add origin 远程仓库链接(通常使用ssh密钥进行链接)

2.重命名仓库

git remote rename 目标仓库名 修改内容

3.推送到远程仓库

git push 仓库名 分支名

b.GitHub已禁止使用用户名与密码验证

①使用token令牌验证

②简单方式:ssh密钥

四、分支

1.分支的概念

        master分支就是发布版分支,所有的分支在测试后都要回归到master进行发布;hot fixes分支是用来修复bug的分支;开发新特性的时候通常在feature分支上开发;开发完成之后会将几个feature合并到develop分支上并测试;在经过测试和功能验证后如果没有问题则会将项目合并至release分支;最终合并到master分支成为最终版本。可以用(git branch --list)查看当前的所处分支列表。

2.创建分支

git branch 分支名 :如git branch feature1,创建feature1分支

3.新建并切换到该分支

git checkout -b 分支名

4.查看分支

git branch --list

5.切换分支

git checkout 分支名

注意分支名前不能有--,git checkout --文件名表示放弃对文件的当前修改

五、分支合并

1.无冲突合并

在 合并至 的分支使用

git merge 要合并的分支

2.分支冲突 merge conflict

将 分支2 合并到 master分支 时, 与 分支1 冲突了. 原因是 分支1 和 分支2 修改了同一处内容.

git status 查看哪里有冲突

vi 到冲突文件中, 选择一个分支的内容保留下来, (:wq)保存退出

git add 文件名

git commit -m '提交描述'

git log --all --graph 查看合并状态

六、推拉与远程跟踪分支

1.推送

git push 仓库名 分支名

或者

git push -u 仓库名 分支名

第一次使用 -u 指定推送目标后, 此后可直接使用git push

2.拉取

git fetch 从远程仓库下载新分支与数据(通常会紧跟Git merge)

git checkout 远程分支

git checkout -b 本地分支名 远程分支

git checkout --track 远程分支

七、贮藏功能

1.git stash

当代码需要临时保存的时候,可以使用stash功能进行临时保存。

2.git stash apply

切换回分支, 恢复之前存储的内容

3.多次存储

a.回看存储记录

git stash list

b.恢复指定记录

git stash apply stash@{记录号}

c.恢复并删除记录

①恢复并删除最近一次记录

git stash pop

删除指定记录

git stash drop @stash{记录号}

八、重置与变基

1.reset(重置)

a.head

head: 当前的提交

head~: 上次的提交

head~2: 倒数第二次的提交

b. --soft

仅取消commit操作, 把修改文件暂存.

如果不加 --soft 则表示恢复到暂存前, 修改的内容是存在的.

c. --hard

取消暂存, 取消修改内容, 回到上次提交的状态.

不推荐使用, 可能丢失数据.

2.rebase(变基)

a.将B分支的修改移动到A分支

git checkout B

git rebase A

b.注意事项

注意他人在远程分支二次开发时, 审慎使用变基

c.交互式操作

rebase -i

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值