Git工具—指令使用

git 使用

1.检查当前文件状态

$ git status

2.跟踪新文件/暂存已修改文件

$ git  add <file> ...

3.查看修改

$ git diff

4.提交更新

$ git commit

5.查看提交历史

$ git log
$ git log -num  //-2 查看最近提交的两次记录

6.强制回滚到上一次的提交记录(可删除log记录)

$ git reset HEAD~1 

# 有时候我们提交了好几个commit,但是想要回到某次的提交
# 回退到上一个版本
$ git reset --hard HEAD^

# 回退到往上 n 个版本
$ git reset --hard HEAD~n

# 回退到某个版本号的版本
$ git reset --hard <版本号>

7.vim编辑窗口退出

# 按shift+:,输入q,退出编辑

8.将文件撤销回到最近一次修改的状态:git checkout – file

checkout:切换参数,通常用来切换分支仓库

当我们在工作中修改了一个文件,若发现内容好像改的不对,想重新修改,这个时又不知道自己改了什么代码,想撤销修改,有一个最简单的方法,就是git checkout -- file,注意中间要有“--”,checkout这个命令是切换分支的功能,关于它我们后面在细说,你现在只需要知道这个命令加上“--”可以用来将文件切换到最近一次的状态。

注意这个恢复只能恢复到上一次提交的状态,如你刚提交了这个文件到仓库,随后你修改了它,那么使用这个命令只会回到刚刚提交后的那个状态里,不能回到你还没有提交,但修改的状态中。

注意这个功能不能一直迭代恢复,如你恢复到了修改前的版本,你想再次回滚回滚到修改前在之前的版本是不行的。

9.查看单个文件可回滚版本:git log filename

# 回滚指定文件到指定版本时,需要查看该文件有多少个版本可以回滚时,可以使用git log filename命令
eg:
git log test.c
git log min.c

# 再使用git reset命令将其回滚就可用了,命令格式如:
git reset 1a1e91bf37add6c3914ebf20428efc0a7cea33f3 min.c

# 回退完成之后想要再次提交可以使用git add和git commit提交到本地仓库中,
# 即可更新当前工作环境,让当前文件保持最新。
git add min.c
git commit -m "new"

# 更新完成后可以在使用log查看一下,会发现多出一个历史版本
# 即便你更新了一个文件,也会生成一个新的历史版本,注意历史版本里只包含了你更新的文件,
# 因为刚刚只add了min.c文件,所以新的历史版本里只有更新min.c文件,你当前的工作其它文件没有在这个历史版本里。

10.删除文件:git rm

# 若使用普通的命令,rm删除文件,git状态会提示删除了文件,只需要使用add重新提交一次就可以。
git rm main.c

# 若需要更新,在使用git rm main.c后,需使用git commit提交一次
git commit -m "rm main.c"

# 查看下status的状态
git status

11.查看提交历史:git reflog

# 可以查看当前版本库的提交历史,凡是对仓库版本进行迭代的都会出现在这个里面,包括回滚版本都会出现在这个历史中
git reflog

报错修改

在提交代码时报错——git push

git push origin HEAD:refs/for/XXX,提示失败ERROR: missing Change-Id in commit message footer,丢失Change-Id。

解决方法如下:

按照出错提示执行以下命令:

1.复制保留执行push操作的时候提示缺失的 【Change-Id: XXXX】信息

2.gitdir=$(git rev-parse --git-dir); scp -p -P 29418 gitusername@serverip:hooks/commit-msg ${gitdir}/hooks/

3.执行git commit --amend,进入编辑界面,将第一步中的【Change-Id: XXXX】信息贴在文本的最后一行,请务必记得请把Change-Id信息粘贴在文本的最后一行。
若把Change-Id信息放在文本注释和描述信息中间,导致的继续push还会报同样的错误。

git冲突解决 —— Merge Conflict

在之前提交的PR(pull request)项目下:

git pull -- rebase
git status 
git rebase -i HEAD~2 
# 若有冲突,会显示在提示git add 下双方有冲突,解决完冲突后 进行
git add .
git status
git rebase --continue
git push origin master

Read-only file system问题的解决方法:

Linux有时候会遇到无法写文件、新建保存文件的情况,提示Readonly file system,可以在终端输入如下命令即可解决(重新挂载):

mount -o remount rw /

解决 no-cla 问题(提示cla没有签署)

如果提示cla没有签署,需要检查一下本地提交代码使用的git环境变量是否正确。

使用 git log查看已经提交的commit,看看"author"那一项对应的邮箱是不是自己已经注册的邮箱。如果不是的话,需要用如下代码进行修改:

git commit --amend --author="author_name <email_adress>" --no-edit

eg:
git commit --amend --author="xiaoming <123456789@gmail.com>" --no-edit 

同时用下面的命令设置一下git环境的user_nameemail:
(不配置也行,当遇到要求登录权限的远程仓库会让你在手动输入用户名、邮箱、以及密码)

$  git config --global user.name "输入你的用户名"
$  git config --global user.email "输入你的邮箱"

Change-Id 说明

在Git中,Change-Id 通常是指一个提交的标识符,它是由补丁提交到 Gerrit 代码审查系统时自动生成的。
如果你想回退到一个特定的 Change-Id 对应的提交,你需要首先找到这个提交的哈希值(commit hash)。

执行步骤:

  1. 找到提交的哈希值
    使用 git log 命令查看提交历史,并找到与 Change-Id: I91ab0ffa55185800a5c3cc232387888a86da7013 对应的提交哈希值。你可以使用 grep 命令来帮助搜索:

    git log --all --graph --decorate | grep "I91ab0ffa55185800a5c3cc232387888a86da7013"
    

    这将会显示所有包含该 Change-Id 的提交记录。

  2. 确定正确的提交哈希值
    一旦你找到了包含 Change-Id 的提交,你会看到一个长哈希值(例如:a5c3cc232387888a86da7013...),这是提交的唯一标识符。

  3. 回退到该提交
    使用 git reset 命令将HEAD重置到该提交。你可以使用 --soft--mixed(默认)或 --hard 选项,这取决于你是否希望保留工作目录中的更改:

    • --hard:丢弃所有更改,完全回退到该提交。
    • --mixed:保留工作目录中的更改。
    • --soft:保留更改,但不更新索引和工作目录。
      例如,如果你想完全回退到该提交,可以使用:
    git reset --hard <提交哈希值>
    

    替换 <提交哈希值> 为实际的提交哈希值。

  4. 更新远程仓库(如果需要):
    如果需要将这个回退操作推送到远程仓库,使用:

    git push origin <分支名> --force
    

    替换 <分支名> 为你当前的分支名。

注意,使用 --hard 选项会丢失所有未提交的更改,因此在执行之前请确保你的工作目录是干净的,或者你已经备份了必要的更改。此外,如果你正在与他人协作,强制推送可能会影响其他人的工作,因此在执行之前应该与团队成员沟通。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
VSCode是一个集成开发环境,支持多种编程语言和版本控制系统,包括git使用VSCode的git工具可以方便地进行代码版本管理和协作开发。你可以通过在VSCode中按下快捷键"Ctrl + Shift + P"来打开命令框,然后输入"git"关键字来查看所有支持的git命令。 如果你的电脑还没有安装git环境,你可以从git官方网站https://git-scm.com/下载并安装git。在安装过程中,你可以选择将VSCode设置为git的默认编辑器。 安装完成后,你可以在Windows的运行窗口中按下"Win + R"来打开命令提示符(cmd),然后输入"git"并回车,如果有反馈信息显示出来,则表示你的电脑已经具备了git环境。 要在VSCode中克隆一个git代码库,你可以按下"Ctrl + Shift + P"来打开命令框,然后输入"git clone"并回车,接着在弹出的文本框中输入git代码库的地址即可。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [vscode怎么使用git](https://blog.csdn.net/weixin_45606067/article/details/114836518)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [在vsCode中如何使用git工具来管理代码](https://blog.csdn.net/qq_44409163/article/details/119255841)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Nerd Nirvana

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值