git学习笔记

本文档详细介绍了Git的安装、配置以及基本操作,包括仓库搭建、分支管理与合并、冲突解决。此外,还讨论了如何忽略文件,解决Git使用中遇到的问题,如文件占用、vim编辑模式的操作,以及git diff和撤销修改的场景。最后,讲解了SSH公匙查看和Git协议的选择。
摘要由CSDN通过智能技术生成

安装

下载

下载地址
安装成功后在开始菜单中会有Git项,菜单下有3个程序:任意文件夹下右键也可以看到对应的程序!
在这里插入图片描述
在这里插入图片描述

配置
#查看系统config
git config --system --list
  
#查看当前用户(global)配置
git config --global  --list

Git相关的配置文件:

1)、Git\etc\gitconfig  :Git 安装目录下的 gitconfig     --system 系统级

2)、C:\Users\Administrator\ .gitconfig    只适用于当前登录用户的配置  --global 全局

设置/修改用户名和地址
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

查看用户名和地址
$ git config user.name
$ git config user.email

常用命令
1)、cd : 改变目录。

2)、cd . . 回退到上一个目录,直接cd进入默认目录

3)、pwd : 显示当前所在的目录路径。

4)、ls(ll):  都是列出当前目录中的所有文件,只不过ll(两个ll)列出的内容更为详细。

5)、touch : 新建一个文件 如 touch index.js 就会在当前目录下新建一个index.js文件。

6)、rm:  删除一个文件, rm index.js 就会把index.js文件删除。

7)、mkdir:  新建一个目录,就是新建一个文件夹。

8)、rm -r :  删除一个文件夹, rm -r src 删除src目录

rm -rf / 切勿在Linux中尝试!删除电脑中全部文件!
9)、mv 移动文件, mv index.html src index.html 是我们要移动的文件, src 是目标文件夹,当然, 这样写,必须保证文件和目标文件夹在同一目录下。

10)、reset 重新初始化终端/清屏。

11)、clear 清屏。

12)、history 查看命令历史。

13)、help 帮助。

14)、exit 退出。

15)、#表示注释

基本理论(重要)

在这里插入图片描述

  • Workspace:工作区,就是你平时存放项目代码的地方

  • Index / Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息

  • Repository:仓库区(或本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本

  • Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换

git项目搭建

  • 本地仓库搭建
在当前目录新建一个Git代码库
$ git init
执行后可以看到,仅仅在项目目录多出了一个.git目录,关于版本等的所有信息都在这个目录里面。
  • 克隆远程仓库
克隆一个项目和它的整个代码历史(版本信息)
$ git clone [url]  # https://gitee.com/kuangstudy/openclass.git

分支

创建与合并

因为创建、合并和删除分支非常快,所以Git鼓励你使用分支完成某个任务,合并后再删掉分支,这和直接在master分支上工作效果是一样的,但过程更安全。

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>或者git switch <name>

创建+切换分支:git checkout -b <name>或者git switch -c <name>

合并指定分支到当前分支:git merge <name>

删除分支:git branch -d <name>
冲突

解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。

git log --graph命令可以看到分支合并图

Git文件操作

#查看指定文件状态
git status [filename]

#查看所有文件状态
git status

git add .                  添加所有文件到暂存区
git commit -m "消息内容"    提交暂存区中的内容到本地仓库 -m 提交信息
忽略文件

有些时候我们不想把某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件等

在主目录下建立".gitignore"文件。

输错退出
 ctrl+c或ctrl+z
 
查看工作区的状态
$ git status

$ git diff #是工作区(work dict)和暂存区(stage)的比较 
$ git diff --cached #是暂存区(stage)和分支(master)的比较 
$ git diff HEAD #查看工作区和版本库里面最新版本的区别


遇到的一些问题及解决:
  1. 创建版本库的默认目录,其父目录含有中文,为避免莫名其妙的问题,切换版本库目录:
git切换到指定目录
$ cd /e/remote
  1. git被另外一个程序占用解决:进入项目文件夹下的 .git文件中(显示隐藏文件夹或rm .git/index.lock)删除index.lock文件即可
rm .git/index.lock
  1. git log显示的内容可能会比较多,但git bash上显示不下时,最下面会有一个冒号:,指示还有更多的内容,这是通过上下箭头就可以选择内容进行查看,要退出按q键即可,要查看其他命令,按h键。

  2. git commit 时没有加 -m“ message”的提示信息就跳到了另外一个界面?
    git commit 不输入 -m 以及后面的内容会进入vim模式
    vi & vim 有两种工作模式:
    (1) 命令模式:接受、执行 vi & vim 操作命令的模式,打开文件后的默认模式;
    (2) 编辑模式:对打开的文件内容进行 增、删、改 操作的模式; 在编辑模式下按下 ESC 键,回退到命令模式。
    创建、打开文件:$ vi [filename]
    (1)使用 vi 加 文件路径(或文件名)的模式打开文件,如果文件存在则打开现有文件,如果文件不存在则新建文件,并在终端最下面一行显示打开的是一个新文件。
    (2)键盘输入字母 “i”或“Insert”键进入最常用的插入编辑模式。
    保存文件:
    (1)在插入编辑模式下编辑文件。
    (2)按下 “ESC” 键,退出编辑模式,切换到命令模式。
    (3)在命令模式下键入"ZZ"或者":wq"保存修改并且退出 vi 。
    (4)如果只想保存文件,则键入":w",回车后底行会提示写入操作结果,并保持停留在命令模式。
    放弃所有文件修改:
    (1)放弃所有文件修改:按下 “ESC” 键进入命令模式,键入 “:q!” 回车后放弃修改并退出vi。
    (2)放弃所有文件修改,但不退出 vi ,即回退到文件打开后最后一次保存操作的状态,继续进行文件操作:按下 “ESC” 键进入命令模式,键入 “:e!” ,回车后回到命令模式。

  3. 关于git diff
    git diff #是工作区(work dict)和暂存区(stage)的比较 git diff --cached #是暂存区(stage)和分支(master)的比较 git diff HEAD #查看工作区和版本库里面最新版本的区别

  4. 关于撤销修改

  • 场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。或者git restore <file>
  • 场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>或者git restore --staged <file>,就回到了场景1,第二步按场景1操作。
  • 场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,git reset --hard HEAD^参考版本回退一节,不过前提是没有推送到远程库。
  1. 远程仓库之查看SSH公匙
    cd ~(进入用户主目录) cd .ssh(进入.ssh目录) ls(列出.ssh目录的文件,可以看到id_rsa id_rsa.pub两个文件) cat ~/.ssh/id_rsa.pub(可以看到id_rsa.pub文件的内容,复制即可)
  2. ls命令就是list的缩写?缺省下ls用来打印出当前目录的清单,ls -ah打印出包括./ …/ 和隐藏目录。
  3. Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。
    https协议克隆远程仓库: git clone https://github.com/karagrade/gitskills
    ssh协议克隆远程仓库:`git clone git@github.com:karagrade/gitskills.git
  4. 对于所有分支而言, 工作区和暂存区是公共的。所以会遇到git 切换分支时会把未add或未commit的内容带过去这种情况。
    参考:git 切换分支时会把未add或未commit的内容带过去
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值