Git常见错误以及解决办法

Git错误以及解决办法

2021/12/23

  • 第一步: 建立Git仓库

    git init(只是在建立仓库的使用一次)

    cd到你的本地项目根目录下,执行git命令,此命令会在当前目录下创建一个.git文件夹。

  • 第二步:将项目的所有文件添加到仓库中

    git add .

    这个命令会把当前路径下的所有文件,添加到待上传的文件列表中。

    如果想添加某个特定的文件,只需把.换成特定的文件名即可

  • 第三步:将add的文件commit到仓库

    git commit -m “注释语句”

  • 参考:git 上传代码步骤 - 简书 (jianshu.com)

2021/12/24

1.git错误 You are not currently on a branch的解决办法

git push

peng@ubuntu:~/git/ytc-nordic-sdk$ git push
fatal: You are not currently on a branch.
To push the history leading to the current (detached HEAD)
state now, use

    git push origin HEAD:

当前不是在分支上,因此不能 pull 或者 push

解决办法

利用git branch查看一下,发现:

 * (HEAD detached from a6d7be9)  
  kang 
  master
  test
  tmp

当前我们处于 (HEAD detached from a6d7be9)上

所以我们进行

git branch temp a6d7be9 // 依据快照a6d7be9 创建 temp分支
git checkout master		// 切换到master分支
git merge temp			// 将temp 分支合并到master分支

然后就可以git push进行提交了

参考:(30条消息) git错误 You are not currently on a branch的解决办法_暴暴君-CSDN博客

1.【Git-error】Your local changes to the following files would be overwritten by checkout

问题:

使用git checkout命令切换分支时由于当前分支有未跟踪的文件,导致切换失败。

error: Your local changes to the following files would be overwritten by checkout:
        main.c
Please commit your changes or stash them before you switch branches.
Aborting

解决方案

有两种选择:A保存修改;B放弃修改

选择A:未跟踪文件的内容改动很重要,保存修改

选择A:未跟踪文件的内容改动很重要,保存修改

方法①:存到暂存区

git add .
git stash 
// 取出的时候使用 
git stash pop

方法②:发起一个commit 存到提交历史

git add .
git commit -m "commit message"

选择B:未跟踪文件的内容改动不重要,放弃修改

两种方法:①清除修改;②强制分支切换

方法①:清除未跟踪文件【推荐做法】

git clean -n         //这个是清除文件预览
git clean -f         //强制清除文件

方法②:强制分支切换

git checkout -f <branch>        // 为要切换到的分支名,注意不带“<>”

参考: (30条消息) 【Git-error】Your local changes to the following files would be overwritten by checkout_dandelionela的博客-CSDN博客

3.错误操作之后本地恢复

git-reflog:(Reference logs(参考日志))是用来恢复本地错误操作很重要的一个命令,所以在这里对它进行一下整理。

4.错误:

peng@ubuntu:~/git/ytc-nordic-sdk$ git push
warning: redirecting to http://192.168.130.13/device/ytc-nordic-sdk.git/
Everything up-to-date

**错误原因:**Git识别到代码没有改动

解决办法:

给代码随意添加一行注释进行改动然后再次提交

5.错误:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O3pc7WIw-1644470536718)(D:\矿安科技\Picture_data\错误5.png)]

**问题原因:**虚拟机网络连接失败

**解决办法:**检查网络,配置网络

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LxpAJrmi-1644470536719)(D:\矿安科技\Picture_data\错误5_1.png)]

问题

查看自己的用户名和邮箱

$ git config user.name

$ git config user.email

修改自己的用户名和邮箱地址:

$ git config --global user.name “xxx”

$ git config --global user.email “xxx”

解决git push时每次需要输入用户名和密码方法

1.在当前项目目录下输入

git config credential.helper store

这里没有–global意思是指只对这个仓库生效,建议以后都不要加–global,让代码配置以仓库为单位存储就好,设置成全局不灵活

2.打开.git文件夹内的config文件,会发现多了两行

3.git push 到远程仓库,按提示输入用户名和密码,注意要输入正确的(GitHub的用户名和密码)

4.再次运行git push 就不用输入用户名和密码了,因为在用户主目录文件夹多了一个文件git-credentials,这个就是用来存储用户名和密码的

5.若想把项目的用户名和密码删掉,输入下列命令

git credential-manager uninstall

这样每次git push时又需要输入用户名和密码了。

上面这条语句一般用于解决push、pull或clone时出现403错误,先解绑再绑定用户名和密码。

参考:https://blog.csdn.net/xiecheng1995/article/details/107226818?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-1.no_search_link&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-1.no_search_link&utm_relevant_index=1

问题

git branch -a看不到远程分支

解决办法:

通过 git fetch 将本地远程跟踪分支进行更新,与远程分支保持一致

然后再次使用git branch -a 查看远程分支

问题

To http://192.168.130.13/device/zuangan.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'http://192.168.130.13/device/zuangan.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

解决办法

git pull --rebase
git push
unterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

解决办法

git pull --rebase
git push

你可能感兴趣的:(git,github)