首页 > 其他分享 >Git使用教程

Git使用教程

时间:2024-04-19 09:33:05浏览次数:27  
标签:教程 git name -- Git user branch 使用 分支

【本文以 Gitee 为例】


git学习笔记

Git 安装

Git 官网下载地址

  1. 进入官网,下载 git

  2. 安装 git 其实一直点击 next 就可以了
    【具体安装选项的阐述等之后再安装 git 时再写 awa】

  3. 验证安装是否成功
    右键出现如下选项时表示安装成功

基础使用

仓库

通过网站快速创建

创建仓库

管理仓库

仓库成员

通过终端配置

创建仓库

管理仓库

仓库成员

代码托管

信息配置

git config --global user.name "uaer_name"
git config --global user.email "user_email"

如果没有配置,bash 不会报错,但是会有 " 请配置 用户名和密码 "的提示

git clone

git clone http_url

git init
对于一个本地的,未连接远程仓库的项目,执行 git init 将生成 .git 文件夹

git pull

​ 拉取项目

git stash

git stash	# 将现在的状态存入暂存区
git stash list	# 查看暂存的状态列表
git stash pop	# 恢复栈顶的状态
git stash drop	# 删除栈顶状态
git stash save "message"	# 暂存现在的状态并添加备注 "message"

stash 保存到的暂存区,可以理解为一个栈

git add

​ 将文件更新到暂存区

git add .	# 将所有文件添加到暂存区
git add doc_url		# 将特定文件添加到暂存区(需要文件后缀名)
git add doc_url1 doc_url2	# 将指定的几个文件添加到暂存区

git commit

git commit -m "message"	# 提交暂存区的内容到本地仓库

git push

git push	# 提交本地仓库的内容到远程仓库

深入介绍

基本理论

忽略文件配置

怎么实现在git提交时对某些文件进行忽略

比较粗糙的一个办法【针对 不需要同步的 新加入 的文件】
在已有项目的 .gitignore 文件处,右键执行 在集成终端中打开

然后执行 git status
则不需要同步的文件路径会出现在终端窗口,将文件路径复制到 .gitignore 文件中

分支

Git——分支 - 详细解释

Git/Gitee--- 分支管理

Gitee创建分支

基础使用

创建分支

  • 终端命令行创建
    git branch branch_name

    git branch branch_name创建的分支,它的备注是分支起点的备注
    它的分支七点为当前分支【它的内容为当前分支的克隆】

    使用终端命令创建的分支,创建完成后需要 git push,将分支与远程仓库连接

  • 网页创建

更新分支及代码

  • git pull

    git pull 可以理解成 git fetch 之后再 git merge

查看分支

  • git branch

  • git branch -v

  • git branch -a

    git branch -v可以查看该分支的分支备注
    git branch -a 还可以查询到远程仓库的分支情况

    当前所在分支会用 * 进行特别标注

    可能在创建分支之后使用命令查询,并不能查询到分支情况,在网页上也不能跟踪到该分支
    但是不用担心
    需要通过 git push 连接分支到仓库
    依然使用 git checkout branch_name 可以成功切换分支

切换分支

  • git checkout branch_name

开发及提交

后续在分支中开发及提交流程与仓库的基础使用一致
git add
git commit -m ""
git push

分支合并

  • 自行切换到主分支进行合并
    此方法由开发者使用 git checkout branch_name 切换到主分支后
    使用 git merge branch_name 将该分支合并到主分支上

  • 请求Pull Requests
    此方法由开发者在网页端点击 Pull Requests 并完善 PR 请求信息后,由他人进行审核、冲突解决等操作
    注意,拉取远程仓库之前,使用git stash save进行暂存并添加说明

    I. git pull

    git pull 将拉取该分支的远程代码以及该分支所关联的远程仓库的代码

    II. git merge branch_name

    将当前分支与 branch_name 分支进行合并
    在实际开发中,向远程发起 PR 之前需要进行这一步,以达到与远程代码的同步

    III. git stash pop

    IV. git add git commit -m "" git push

    V. 发起PR

合并其他分支的代码

  • 理论上来讲只需要进行 git merge branch_name 即可
  • 可能出现 Already up to date. 的情况,是因为 git pull 执行时并未对其他分支的代码、状态进行更新,因此在本地, git 认为当前分支与其他分支版本一致
  • 切换到需要被合并的分支
    git checkout branch_name
  • git pull
    这将拉取该分支的代码到本地
  • 切换回自己原来的分支
  • git merge branch_name

可能遇到的问题

  • git pull git merge branch_main 操作不能拉取到主分支最新的代码,显示 Already up to date.

    理论上是 git pull 将拉取远程仓库中本分支 + 主分支的代码,然后执行 git merge 将对分支进行合并
    但是(以使用 Visual Studio Code为例)
    则需要先切换到主分支,然后 git pull
    然后返回原分支,进行 git pull 和 git merge

  • git push --set-upstream origin branch_name 使用终端命令创建的分支
    在提交时要求链接上游分支

    使用 git push -u origin branch_name 提交一次即可

可能遇到的问题

身份验证

【git 报错The requested URL returned error: 403】

【解决git操作一直要求输入用户名和密码的问题】

【如何解决git每次都要输入用户名密码的问题】

【Git pull 或 push 提示:The requested URL returned error: 403】

问题复现:

我有一个 Gitee 账号 H,我用 H 账号参加了别人的项目(加入别人的仓库),并在本地进行了开发;
我修改了 H 账号的邮箱及手机号;
我注册了一个新的账号 MH,手机号为原来 H 账号的手机号;
我使用 MH 创建了仓库,并在本地进行了全局配置,然后开发和更新;

我再次登陆 H 账号,进行 H 项目的更新;

  1. 配置全局 user.name | user.email
git config --global user.name "uaer_name"
git config --global user.email "user_email"

没有起效

  1. 清除缓存
git config --local --unset credential.helper
git config --global --unset credential.helper
git config --system --unset credential.helper
  1. pull ==> 输入用户名和密码 ==> 白色输入框中点击【取消】
git pull
error: unable to read askpass response from 'git-askpass.exe所在位置'
Username for 'https://gitee.com': username
error: unable to read askpass response from 'git-askpass.exe所在位置'
Password for 'https://[email protected]':
Already up to date.

一般 git-askpass.exe 在 Git 的安装目录下:Git/mingw64/bin/git-askpass.exe
Password for 'https://[email protected]': password(密码不会显示)

  1. 配置全局信息
 git config --global credential.helper store
 git config --global user.username "user_name"
 git config --global user.password "password"

  1. 查看全局配置信息 我是傻子,配置全局信息的时候打错指令了
git config --global --list
credential.https://gitee.com.provider=generic
user.username=user_name
user.password=password.
(user.uaername=user_name) ~~我也不知道为什么打成这样了,我是傻子~~
  1. 修改全局配置
git config --global --edit

I -- 开始写入
Esc -- 退出写操作
:wq -- 保存并退出

  1. pull ==> 输入用户名和密码 ==> 白色输入框中点击【取消】
  2. 配置局部信息
git config --local credential.helper store
git config --local user.username "user_name"
git config --local user.password "password"

  1. 清除缓存
  2. 查看配置信息
git config --global --list
credential.https://gitee.com.provider=generic
user.username=user_name
user.password=password.

其实到这里应该已经可以了,但是我是傻子,我加了一句指令就不行了
git config --global credential.helper store

  1. 修改项目文件夹下的 .git ==> config 文件
[core]
	repositoryformatversion = 0
	filemode = false
	bare = false
	logallrefupdates = true
	symlinks = false
	ignorecase = true
[remote "origin"]
	url = https://user_name:[email protected]/project_url.git
	fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
	remote = origin
	merge = refs/heads/master

全局配置文件 -- 用户目录
"C:\Users\username\.gitconfig"

[credential "https://gitee.com"]
	provider = generic
[user]
	username = user_name
	password = password

默认局部设置 可能

Git\git\Git\etc

[diff "astextplain"]
	textconv = astextplain
[filter "lfs"]
	clean = git-lfs clean -- %f
	smudge = git-lfs smudge -- %f
	process = git-lfs filter-process
	required = true
[http]
	sslBackend = openssl
	sslCAInfo = Git/git/Git/mingw64/etc/ssl/certs/ca-bundle.crt(安装目录下)
[core]
	autocrlf = true
	fscache = true
	symlinks = false
[pull]
	rebase = false
[credential "https://dev.azure.com"]
	useHttpPath = true
[init]
	defaultBranch = master

代码冲突

​ 一般代码冲突发生在

  • 如果每次提交代码按照 git stash --> git pull --> git stash pop ,那么冲突一般发生在 git stash pop
  • 使用分支进行分支合并,即 git merge branch_name 时,也可能出现冲突

​ 解决冲突的工具很多,git 自带的网站、IDEA、Git GUI等

以 Visual Studio Code 为例

  1. 文件的末尾出现 ! 表示该文件中发生冲突 -- 点击 在合并编辑器中解析

  2. 合并冲突
    一般来讲,左边部分是 stash pop 出来的更改,右边部分是 pull 或 merge 之后的更改,下面是结果,结果中的内容可以手动修改

  3. 合并完成之后,文件默认已经执行了 git add 指令,因此需要先提交

版本回退

其他

warning: in the working copy of ‘...‘, LF will be replaced by CRLF the next time Git touche

​ 在执行 git add 操作之后,可能出现以上警告

warning: in the working copy of ‘...‘, LF will be replaced by CRLF the next time Git touche

​ 警告的含义是:Git 已自动将 LF 换行替换为 CRLF 回车换行

标签:教程,git,name,--,Git,user,branch,使用,分支
From: https://www.cnblogs.com/Muhuai/p/18144077

相关文章

  • git学习笔记
    初始化初始化设置用户名和邮箱gitconfig--globaluser.name"zjq"#设置用户名[email protected]#设置邮箱gitconfig--globalcredential.helperstore#存储,后续无需再设置创建仓库gitinit<project-name>#创建一个新的本地仓库(省略p......
  • hyperf windows使用docker搭建开发环境
    2024年4月13日23:44:16首先安装好docker注意:powershell是不支持命令换行符的dockerrun--namehyperf-vD:/code:/data-w/data-p9501:9501-it--privileged-uroothyperf/hyperf:8.1-alpine-v3.18-swoole或者使用最新版本dockerrun--namehyperf-vD:/code:/dat......
  • React初次使用
    大概过了一下JS,今天再试试React一、React核心语法1、脚手架创建一个项目npxcreate-react-appdemo2、插值functionApp(){constdivContent='标签内容'constdivTitle='标签标题'return(<divclassName="App"><headerclassName="A......
  • HarmonyOS NEXT应用开发之使用AKI轻松实现跨语言调用
    介绍针对JS与C/C++跨语言访问场景,NAPI使用比较繁琐。而AKI提供了极简语法糖使用方式,一行代码完成JS与C/C++的无障碍跨语言互调,使用方便。本示例将介绍使用AKI编写C++跨线程调用JS函数场景。通过调用C++全局函数,创建子线程来调用JS函数,实现对变量value的加10操作,为开发者使用AKI提......
  • Mac 使用 brew 安装 mysql
    ##搜索可用版本brewsearchmysql##安装制定版本[email protected]##重点需要关注的安装日志如下==>[email protected]==>[email protected]_1.sonoma.bottle.tar.gz==>/usr/local/Cellar/[email protected]/8.0.36_1/bin/mysqld--initialize-insecure-......
  • 在 SQL Server 中 你可以使用以下查询来找到引用 的 FOREIGN KEY 约束
    SELECTf.nameASForeignKeyName,OBJECT_NAME(f.parent_object_id)ASReferencingTable,COL_NAME(fc.parent_object_id,fc.parent_column_id)ASReferencingColumn,OBJECT_NAME(f.referenced_object_id)ASReferencedTable,COL_NAME(fc.referenced_object_id,fc.re......
  • Git提交错误后如何回滚
    查看提交历史记录gitlog回滚到指定的提交gitreset--hard%id把本地版本强推到main分支gitpushoriginmain--force相关的命令查看当前分支:gitbranch切换分支gitcheckoutbranchname创建新分支gitbranchnewbranchname关联新分支gitpush--......
  • stm32f103使用RT-Thread组件fal读写内部flash
    本次使用RT-Threadstudio编写,使用为5.02完整版,目的是将内部flash进行分区,可以直接在内部flash存储数据。一、功能配置首先是打开设置里的FAL组件,因为我这里不需要外部内存,SFUD驱动就没打开:然后是配置两个参数,一个在board.h里,定义BSP_USING_ON_CHIP_FLASH,一个是在stm32xxxx_hal_......
  • 使用c#8语法
    [C#]framework修改项目语言为C#8.0_.netframework项目如何修改c#语言-CSDN博客在项目文件中增加一条:<PropertyGroupCondition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"><PlatformTarget>AnyCPU</PlatformTarget><DebugSy......
  • 什么是云渲染?云渲染平台怎么使用?云渲染怎么收费?
    什么是云渲染?云渲染是一种利用云计算技术提供的云端服务,用户可以将本地任务递交到远程服务器上,由远程计算集群协调和完成渲染,并将结果返回本地,最后用户可以在本地下载渲染结果。而实时云渲染则是云渲染的一种形式,它既保证了渲染质量,还可以实现实时渲染,使用户能够实时观察渲染效......