Git\Linux面试

git命令–https://www.runoob.com/git/git-workspace-index-repo.html

Git 的工作就是创建和保存你项目的快照及与之后的快照进行对比。
git clone、git push、git add 、git commit、git checkout、git pull
一共包含四个区:工作区、暂存区、本地仓库、远程仓库.

在这里插入图片描述

基础命令

git init 在当前目录新建一个git代码库

git clone 下载一个项目和它整个代码历史

git branch 查看本地所有分支

git branch [分支名] 创建分支

git chekout [分支名称] 切换分支

git status (查看问价能改变记录)

使用 git add 命令将内容写入暂存区。

git commit -m ‘添加修改信息’
git commit -a -m ‘提交信息’:我们知道-m参数是输入提交信息的,-a 参数就是可以把还没有执行add命令的修改一起提交。
-a 参数设置修改文件后不需要执行 git add 命令,直接来提交

git commit 命令将暂存区内容添加到本地仓库中。提交暂存区到本地仓库中

git push的一般形式为 git push <远程主机名> <本地分支名> <远程分支名> ,例如 git push origin master:refs/for/master ,即是将本地的master分支推送到远程主机origin上的对应master分支, origin 是远程主机名,第一个master是本地分支名,第二个master是远程分支名。

git push origin master == git push origin master:master 将本地的 master 分支推送到 origin 主机的 master 分支。

如果本地版本与远程版本有差异,但又要强制推送可以使用 --force 参数:
git push --force origin master

git add	添加文件到仓库
git status	查看仓库当前的状态,显示有变更的文件。
git diff	比较文件的不同,即暂存区和工作区的差异。
git commit	提交暂存区到本地仓库。
git reset	回退版本。
git rm	删除工作区文件。
git mv	移动或重命名工作区文件。
命令	说明
git remote	远程仓库操作
git fetch	从远程获取代码库
git pull	下载远程代码并合并
git push	上传远程代码并合并

Git提交流程

1、到达要提交的目录下,可以先把网站git clone下来一个空的文件夹,然后把文件都mv进去,与gitlab保持一样的目录结构。
2、然后使用git add *,把文件放进缓存-中转—写入暂存区
3、接着git commit -m ‘add new code’
4、git push—输入密码,这里可以使用SSh保存密码,就不用反复输入。

git clone – git add * — git commit -m ‘add new code’ — git push

深化:
当执行 git reset HEAD 命令时,暂存区的目录树会被重写,被 master 分支指向的目录树所替换,但是工作区不受影响。
当执行 git rm --cached 命令时,会直接从暂存区删除文件,工作区则不做出改变。
当执行 git checkout . 或者 git checkout – 命令时,会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险,会清除工作区中未添加到暂存区的改动

在这里插入图片描述

一般工作流程如下

克隆 Git 资源作为工作目录。
在克隆的资源上添加或修改文件。
如果其他人修改了,你可以更新资源。
在提交前查看修改。
提交修改。
在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。
在这里插入图片描述

Git- 分支管理 -必杀技

使用分支将工作切分开来,从而让我们能够在不同开发环境中做事,并来回切换。
创建分支命令:
git branch (branchname)
切换分支命令:
git checkout (branchname)
当你切换分支的时候,Git 会用该分支的最后提交的快照替换你的工作目录的内容, 所以多个分支不需要多个目录。
合并分支命令:
git merge

Git pull 使用时,本地已经修改的情况

同事在使用git pull代码时,经常会碰到有冲突的情况,提示如下信息:

error: Your local changes to ‘c/environ.c’ would be overwritten by merge. Aborting.
Please, commit your changes or stash them before you can merge.
这个意思是说更新下来的内容和本地修改的内容有冲突,先提交你的改变或者先将本地修改暂时存储起来。

处理的方式非常简单,主要是使用git stash命令进行处理,分成以下几个步骤进行处理。

1、先将本地修改存储起来
$ git stash
这样本地的所有修改就都被暂时存储起来 。是用git stash list可以看到保存的信息:
git stash暂存修改
其中stash@{0}就是刚才保存的标记。
2、pull内容
暂存了本地修改之后,就可以pull了。
$ git pull
3、还原暂存的内容
$ git stash pop stash@{0}
系统提示如下类似的信息:
Auto-merging c/environ.c
CONFLICT (content): Merge conflict in c/environ.c
意思就是系统自动合并修改的内容,但是其中有冲突,需要解决其中的冲突。

4、解决文件中冲突的的部分
打开冲突的文件,会看到类似如下的内容:

git冲突内容
其中Updated upstream 和=====之间的内容就是pull下来的内容,====和stashed changes之间的内容就是本地修改的内容。碰到这种情况,git也不知道哪行内容是需要的,所以要自行确定需要的内容。

解决完成之后,就可以正常的提交了。

修改量小,直接回退到未提交的版本(可选择是否保存本地修改)
如果本地修改量小,例如只修改了一行,可以按照以下流程
-> reset(回退到未修改之前,选hard模式,把自己的更改取消) -> 重新pull -> 在最新代码上修改 -> [pull确认最新] -> commit&push
]

Linux

ctrl+c 中断目前程序
reboot 重启

head -n 20 file 打印前20行数据

grep [选项] [查找模式] [文件名1,文件名2.。。] 搜索文件内容
^ 以什么开头 ls -l | grep ^d 列出当前目录下所有子目录详细信息
$ 以什么结尾, ls -l | grep c$ 查找当下以c结尾的目录

作用是过滤出所需要的信息~~
最直接就是 grep “关键词” 文件

grep 选项 ‘word' filename
-c:打印符合要求的行数
-i:不区分大小写
-n:在输出符合要求的行的同时显示行号
-v:打印不符合要求的行
-A:后跟一个数字n,表示打印符合要求的行以及下面n行
-B:后跟一个数字n,表示打印符合要求的行以及上面n行
-C:后跟一个数字n,表示打印符合要求的行以及上下各n行
-r:会把目录下所有的文件全部遍历
--color:把匹配到的关键词用红色标示
例子:
过滤出带有某个关键词的行并输出行号
grep -n ‘root' 1.txt
过滤出不带有某个关键词的行并输出行号
grep -nv ‘root' 1.txt
过滤出所有包含数字的行
grep ‘[0-9]1.txt
过滤出所有不包含数字的行
grep -v ‘[0-9]1.txt

ssh, scp 远程登录linux主机, 远程拷贝

kill -9 19999 终止线程号为19999的线程 -9强制结束

top 动态显示当前耗资源最多的进程信息

df -h 以易读格式列出文件系统的整体磁盘使用量

vim命令

i 光标前插入

a光标后插入

x删除光标处的字符

dd删除光标所在的整行

:q 未修改文档时退出

:q! 强行退出,放弃修改

:wq 保存退出

:w 文档保存

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值