Git_常用命令+代码冲突解决方案

这篇具有很好参考价值的文章主要介绍了Git_常用命令+代码冲突解决方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基本命令的使用

查看git的当前版本

git -v

初始化配置

–local: 配置对当前仓库有效

–global: 配置对当前用户(指的是当前用于登录系统的用户)的所有仓库有效

设置用户名及邮箱

 git config --global user.name "xiao Ai"
 git config --global user.email 12345678.@qq.com

注意:由于此处设置的用户名中间有空格所以要使用双引号,正常设置时无需使用双引号

设置仓库的认证方式

git config --global credentail.helper store

credentail.helper后的参数可选:

  • cache: 在第一次输入认证凭据后会将其存储在缓存中,短期内不需要重复输入。
  • store: 将凭据保存在.gitcredentail文件中。除非修改了git服务器上的密码,否则在第一次输入认证凭据后就再也不用输入。

查看当前配置

git config --global --list

创建仓库

从远程服务器克隆仓库

git clone https://github.com/xiaoAi1234/xue-cheng-plus #远程仓库的url地址

创建本地仓库

创建本地仓库前先要进入自己想要作为本地仓库的文件夹下,再使用git命令将该文件夹变成本地仓库。

git init

或者使用如下命令,从而在当前路径下新建一个名为test的文件夹并将其作为本地仓库。

git init test

添加和提交文件

在学习添加和提交文件前,我们需要先了解一下git的工作区域和文件状态。

工作区域和文件状态

工作区域
  • 工作区:也叫本地工作目录,就是电脑中的文件夹。
  • 暂存区:也叫索引,用于保存即将提交到git仓库的内容。
  • 本地仓库:存储代码和版本信息。
文件状态
  • 未跟踪:文件未被git管理 (文件在git status命令下提示为红色)
  • 未修改:文件已被git管理但文件内容未发生变化
  • 已修改:文件内容发生变化但还未添加到暂存区
  • 已暂存:文件内容发生变化并添加到了暂存区内 (文件在git status命令下提示为绿色)

查看文件状态及分支信息

git status

该命令可查看工作区及暂存区中文件的状态,其中:

红色=》未跟踪文件

绿色=》已暂存文件

同时还会提示当前所处分支及相关信息

查看暂存区的内容

git ls-files

添加文件

将文件添加到暂存区,同时文件状态将变为已暂存。

git add 1.txt

添加文件时也可以使用通配符来批量添加文件,如下所示。

git add *.txt

添加当前目录下所有文件

git add .

如果想移除暂存区的文件可使用如下命令

git rm --cached 1.txt

提交文件

将暂存区的文件提交到仓库,-m后跟的是本次提交的相关信息。

git commit -m "第一次提交"

查看提交日志

使用如下命令会显示每次提交的提交者,邮箱,提交日期,相关信息及版本号

git log

想要查看更简洁的日志可使用如下命令。该命令仅显示每次提交的相关信息及版本号

git log --oneline

回退版本

git reset --soft 5af90b8 #要退回到的版本号,也可以为^HARD即退回到上一个版本。

reset后可接参数:

  • soft: 回退版本,但不清空工作区和暂存区内容
  • mixed: 回退版本,清空暂存区内容但不清空工作区内容
  • hard: 回退版本,同时清空暂存区和工作区内容

soft与mixed的使用场景:

可对仓库进行多次回退,然后再一次性提交暂存区中的内容,从而实现将之前提交的多个版本合并成一个版本。

但这里如果是使用mixed在提交前需要先用“git add"命令将工作区内容添加到暂存区。

hard的使用场景:

确认真的需要回退到上一个版本并在后续基于上一个版本进行代码开发时。

撤销操作

可以先通过如下命令查看执行过的git操作,从而找到误操作之前的版本号

git reflog

用reset命令回到之前的版本号

git reset --hard 5af90b8

差异比较

比较工作区与暂存区的差异

git diff

比较工作区和版本库差异

git diff HEAD

比较暂存区和版本库差异

git diff --cached

比较版本库中两个版本的差异

#用法1
git diff 版本一ID 版本二ID
#用法2,此处HEAD指向最新版本
git diff 版本一ID HEAD
#用法3,此处HEAD指向最新版本,HEAD~指向上一个版本,HEAD~3则表示在HEAD前的三个版本
git diff HEAD~ HEAD
#用法4,指定比较特定文件的版本
git diff HEAD~ HEAD file.txt

执行差异比较的结果:
下图提示了file3.txt文件中的内容差异

Git_常用命令+代码冲突解决方案,# Git,git

红色为删除内容,绿色为添加的内容。

删除文件

# 操作1, 仅能将文件从工作区删除。使用git add后才能将信息同步到暂存区;使用git commit后才能将信息同步到版本库。
rm file.txt
# 操作2, 将文件从工作区和暂存区删除。使用git commit后才能将信息同步到版本库。
git rm file.txt

分支相关操作

# 查看当前仓库的所有分支
git branch
# 新建分支
git branch hhh
# 切换到不同分支。但由于checkout也有恢复文件的作用,所以当分支名与文件名相同时会产生歧义,默认为切换分支
git checkout h1
# git在2.23版本后专门切换分支的命令
git switch h1
# 若当前分支为h2,则会将分支h1合并到h2中。注意:虽然分支被合并但它仍然存在于仓库中
git merge h1
# 查看分支图
git log --graph --oneline --decorate --all
# 删除已合并分支
git branch -d h1
# 强制删除分支,不管该分支是否合并
git branch -D h2

代码冲突

原因

两个分支修改了同一行代码

解决方案

#1.查看发生冲突的文件
git status
#2.查看冲突的具体内容
git diff
#3.退出冲突查看页面
进入末行模式后,输入wq
#4.对冲突文件进行修改
cat 1.txt
#5.提交合并后的文件
git add .
git commit -m "merge"

ps: 在提交前也可选择中断本次合并文章来源地址https://www.toymoban.com/news/detail-850676.html

git merge --abort

到了这里,关于Git_常用命令+代码冲突解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux服务器使用git clone命令时报错的解决方案

    在往GitHub上上传项目时,使用git clone xxxxx.git时候报错: “gnutls_handshake() failed: the TLS connection was non-properly terminated” 由系统的 git 默认使用的 libcurl4-gnutls-dev 造成,可以使用openssl解决. 但是这个过程也很多坑。 依次执行: 执行到第三句 sudo apt-get build-dep git 又报错: you must

    2023年04月08日
    浏览(46)
  • 【Git】Git 操作命令可视化(五):git clone、git fetch、git pull、git push、git pull --rebase、解决远程仓库与本地仓库的代码冲突

    1. git clone main是本地的main分支,o(origin)/main是表示本地拉去下来的远程的main分支 o/main分支记录了远程仓库拉取时的分支状态 远程分支有一个特别的属性,在你切换到远程分支时,git会自动进入分离 HEAD 状态(这样做是因为git不想让你在本地就能直接进行修改远程仓库代码的

    2024年02月08日
    浏览(50)
  • git 解决每次更新代码都要输入用户名和token的解决方案

    参考:git 解决每次push代码都要输入用户名密码和git token失效的问题 Github从2021年8月14日开始就不支持用户密码输入了: remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead. 在官网配置好token之后,保存到本地txt,但是奈何每次push都要复

    2024年02月03日
    浏览(28)
  • 关于git提交代码时报错Committer identity unknown的解决方案

    今天安装好git后,创建新项目,当git上传提交时出现了一个问题,如下: 解释 Commit failed - exit code 128 received, with output: \\\'*** Please tell me who you are. Run git config --global user.email \\\"you@example.com\\\" git config --global user.name \\\"Your Name\\\" to set your account\\\'s default identity. Omit --global to set the identity o

    2024年04月16日
    浏览(25)
  • 【git回滚后,同事pull拉不到最新回滚代码-解决方案】

    1. 问题起因? 合并代码冲突,导致部分代码丢失了。决定回滚到昨天下班后最后一个版本。 使用命令 git reset --hard commit_id git push --hard 2. 接着让同事们拉代码。。。。 发现提示是最新代码但是拉不下来。需要使用下面的代码:我没有进行测试,如果你测试了麻烦给留言哈。

    2024年02月12日
    浏览(26)
  • 删除本地文件后,使用 git pull 命令从远程仓库无法拉取到被删除文件的解决方案

    一、问题描述: 从git上拉取文件后,在本地有修改文件,导致文件爆红。然后修改的内容又不想提交,就把爆红的文件删除掉了,想重新从git上拉取,但是此时却拉取不成功了。(虽显示已更新,但并未成功)  1.git pull 2.git status查看当前的状态,也提示了有被删除的文件。 二

    2024年01月18日
    浏览(40)
  • VS 如何取消git源代码管理,如何取消将解决方案添加到代码管理,如何取消签入?

    Visual Studio 不小心在解决方案中勾选“将解决方案添加到源代码管理”,在侧栏中显示蓝色小锁的图标, 并产生“已签入”的字样,如何取消代码管理呢? 首先,在 “工具 - 选项” 中找到 “源代码管理 - 插件选择”,再将下拉框中的“Git”改为“无”。 此时,源代码管理

    2024年02月13日
    浏览(38)
  • 一文了解IntelliJ IDEA如何使用git上传代码到GitHub(附常见问题解决方案)

    本文对应知识库文档(持续更新常见问题解决方案中ing) IntelliJ IDEA使用以及下载 (yuque.com) IDEA使用 git 参考链接 https://www.cnblogs.com/chenchenzi/p/14923708.html 解决访问Github出现的Couldn‘t connect to server错误 解决访问Github出现的Couldn‘t connect to server错误-CSDN博客 解决IDEA中用Git推送时

    2024年02月04日
    浏览(50)
  • git代码合并、git解决冲突的方法?

    Git是一种分布式版本控制系统,它提供了多种方法来合并代码和解决冲突。下面是两个常见的场景以及对应的操作步骤: 合并分支 当我们在一个项目中有多个分支时,需要将不同分支中的代码合并到一起。假设我们有一个主分支master和一个开发分支dev,现在需要将dev分支合

    2024年02月02日
    浏览(32)
  • 记录一个IDEA中使用GIT的严重BUG,导致测试分支合并到主分支,以及代码恢复解决方案

    在做项目时遇到了一个问题,就是不知道什么操作,无缘无故把test分支代码合并到了master,导致花了好长时间去恢复master分支的代码,所以研究了一下,到底是什么原因导致的这个问题 PS: 后来分析出来根本原因,确定这确实是IDEA的一个BUG,在下面会有详细描述 当我们在test分支时,

    2023年04月14日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包