avatar

目录
git_learn

git基础

git介绍

git是目前世界上最先进的分布式控制系统

git与github

两者区别

git是一个分布式版本空值系统,简单来说就是一个软件,用于记录一个或若干个文件内容的变化,一便于将来查阅特定版本修订情况的软件

Github :www.github.com

git的使用

git本地操作三个区域:

工作流程:

本地仓库操作:

  1. 创建空目录 mkdir filename
  2. 在命令中进入目录
  3. git仓库初始化(告诉git需要管理此目录) git init

表现:执行之后在项目目录下创建 .git 隐藏目录,不能删除,也不能随意更改

git常用操作指令:

查看当前状态:git status 非必要

添加到缓存区: git add filename

说明 :git add 指令,可以添加一个文件,也可以同时添加多个文件。

语法1:git add filename

语法2:git add filename1 filename2 filename3

语法3:git add 添加当前文件到缓存区

提交至版本库: git commit -m “注释内容”

在后续对于文件(可以操作1个或多个)操作之后 可以重复操作 git add git commit

版本回退
  1. 查看版本 git log / git log –pretty=oneline
  2. 回退操作:git reset –hard 提交编号

注意:回到过去之后,要想回到之前最新的版本的时候,则需要使用指令去查看历史操作,以得到最新的commit id

指令: git reflog

小结:①要想回到过去,必须先得到commit id,然后通过git reset -hard 进行回退 ②要想回到未来,则需要使用git reflog进行历史操作查看,得到最新的commit id ③ 在写回退指令的时候commit id可以不写全,git自动识别,但是也不能写太少,至少需要写前4位字符

github 远程仓库的创建

两种常规方式

基于http协议
  1. 创建空目录,

  2. 使用clone指令克隆线上仓库到本地

    指令:git clone + 地址

  3. 在仓库上做对应的操作(提交暂存区,提交本地仓库,拉去线上仓库) 提交到线上仓库的指令:git push

    在首次往线上仓库提交内容的时候出现了403的错误,原因是,不是任何人都可以在线上仓库提交内容

    修改git隐藏文件中 url地址修改如:hhtps://用户名:密码@github.com/用户名/仓库名.git 。 当克隆线上仓库可直接进行修改,只需要加入用户名和密码

    设置好以后再重新上传: git push

  4. 拉取线上仓库与本地仓库同步:git pull

提醒:在每天工作的第一件事git pull拉取线上最新的版本;每天下班前要做的是 git push,将本地代码提交到线上仓库

基于SSH的方式(需自行安装openSSH)

步骤:① 生成客户端公私钥文件 ②将公钥上传到Github

创建公私钥文件 : ssh-keygen -t rsa -C “github注册邮箱”

根据命令界面提示的文件目录,找到ssh.pub文件,复制密钥到github仓库

③ 执行基于SSH的代码克隆,在github仓库可选http和ssh,以后的操作指令都和基于http类似

分支管理(分支文件互不影响)

分支相关指令

查看分支:git branch 当前分支有个标记 “*”

创建分支:git branch 分支名

切换分支:git checkout 分支名

删除分支: git branch-d 分支名

注意:在删除分支的时候一定要退出要删除的分支

合并分支: git merge

合并分支后 需要提交到远程仓库中

冲突的产生与解决

1、git冲突的场景

  • 情景一:多个分支代码合并到一个分支时;
  • 情景二:多个分支向同一个远端分支推送代码时;

实际上,push操作即是将本地代码merge到远端库分支上。

关于push和pull其实就分别是用本地分支合并到远程分支 和 将远程分支合并到本地分支

所以这两个过程中也可能存在冲突。

git的合并中产生冲突的具体情况:
  <1>两个分支中修改了同一个文件(不管什么地方)
  <2>两个分支中修改了同一个文件的名称
两个分支中分别修改了不同文件中的部分,不会产生冲突,可以直接将两部分合并。

2、冲突解决方法

  • 情景一:在当前分支上,直接修改冲突代码—>add—>commit。

  • 情景二:在本地当前分支上,修改冲突代码—>add—>commit—>push

    注:借用vim或者IDE或者直接找到冲突文件,修改。

git实用技能

图形化界面工具推荐

① Github for Desktop

② Source tree (号称最好用Git GUI工具)

③ TortoiseGit(海龟Git 前辈TortoiseSVN)

④ Git自带的GUI 工具 (不推荐)

忽略文件操作

常见规则写法有如下几种

创建 .gitigno文件 Linux命令 touch

mtk代表文件夹

1) /mtk/ 过滤整个文件夹

2) *.zip 过滤所有 .zip文件

3) /mtk/do.c 过滤某个具体文件

4) !index.php 不过滤某个具体文件

文章作者: 止戈-
文章链接: http://vchamps.cn/2020/04/04/git-learn/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Ever-Wu