常用命令
1.撤销 commit git reset --mixed HEAD^ 此操作同时撤销add
以上操作将把HEAD
指针移动到父提交,但不会改变工作目录中的文件,修改将被保留
2. git commit --amend
用于修改最近一次提交信息的 Git 命令。它可以用于更正提交信息、添加漏掉的文件或修改之前提交的文件
提交一次后,需要修改,则使用该命令,可以修改提交信息,同时如果修改了文件,也可add.新内容,然后也使用这个提交,他并不会创建新的提交对象,而是修改了已有的提交对象。
这样就可以把新写的内容添加到上一次的提交中。
注: 如果已经推送到远程仓库了,需要使用强制推送 (git push --force
) 来更新远程仓库的提交历史。
1. 问题:尝试推送到一个名为“chenx”的远程存储库。错误消息显示无法找到所需的项目。
原因:我在xn的帐号中修改的代码,推到chenx自己fork的仓库,xn的gitlab没有添加我密钥
对策:只能在自己的帐号中修改密码提交等操作,才能提到自己的fork仓库
2. 问题:切换分支时 ,如果提示有未提交的,会提示本地修改会被检出覆盖, 却换分支会被终止。
原因:本地修改的文件未提交。
对策1: git checkout -- config/data_config.yaml 不保存修改
git checkout -- <file>
命令用于撤销指定文件在工作目录中的修改,将其恢复到上次提交时的状态。
对策2:如果您暂时不想提交修改,但又不想丢失这些修改,您可以使用 Git 的贮藏功能,将修改暂时存储起来,然后再切换分支。
git stash # 贮藏当前的修改
git checkout branch_daimler
3.问题:尝试进行 git pull
操作时,远程仓库上有文件需要更新到您的本地仓库,但这些文件在您本地的工作目录中是未跟踪的(untracked)。因此,Git 不知道如何处理这些文件的更新,因为它们不在 Git 的版本控制之下。
原因:未添加gitGit 的版本控制
对策:
4. 拉取的时候 遇到如下问题:
错误提示意味着你的本地修改将会被合并操作覆盖掉。通常情况下,这是因为在你试图进行代码合并时,发现了冲突,即有多个版本的修改与你的本地修改产生了冲突。
原因:有多个版本的修改与你的本地修改产生了冲突
对策:1.不要所有的本地修改,git reset --hard origin/branch_daimler
将本地的 HEAD 移动到了与远程分支 branch_daimler
相同的位置,这会导致您的本地工作目录和索引与远程分支完全一致。这也意味着您的本地任何未提交的更改都已经被删除,并且您当前处于 branch_daimler
分支上的最新状态。
5. git pull时
显示
由于你的本地修改会被合并操作覆盖,所以 git pull
操作被中止了。
解决: git checkout .
6. git push时 已经拉取最新的代码了,仍然显示落后远程分支
我猜测的原因是,我之前提交的一次记录没有被合并到origin/branch_daimler,导致我的远程分支的提交记录与当前提交存在冲突, 因为我上次的提交没有用,所以没被合并到origin中,所以我强制推送来解决此问题。
解决 :git push --force chenx
问题 : 更换电脑后,未重新配置邮箱,就commit了
错误原因为:远程服务器上配置的邮箱地址与提交记录中的邮箱地址不一致
修改 :
git config --global user.email "chenxiao@meixing.com"
查看一下
git config --global user.email
修改最近一次commit
git rebase -i HEAD~1
修改 提交记录中的邮箱(注意, Your Name 修改为你实际的名字)
git commit --amend --author="Your Name <chenxiao@meixing.com>"
git rebase --continue
git push origin HEAD:refs/for/master