【GIT】git常见问题指南

版权声明:将遇到的问题,记录下来,方便自己也方便大家。 本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/y491887095/article/details/82352620

过去的一年多中,我陆陆续续的记录了一些GIT操作中遇到的问题,以及对应的解决方法,在这里分享出来。
这个过程中,我参考了很多的文章,很遗憾没能一一记录。在这里,对所有帮助过的朋友表示感谢。如果您看到我有侵犯您的著作权,请联系我,及时处理。

1、Git忽略某些文件

在管理一个版本库时,有时候不想要管理某些文件,这个时候我就把这个问件写到.gitignore文件中,这样应该就可以将这个文件忽略,但是经常出现的情况是:将这些文件名写到其中了,使用

git status

查看发现这些文件并没有被忽略掉。查了资料发现,想要.gitignore起作用,必须要在这些文件不在暂存区中才可以,.gitignore文件只是忽略没有被staged(cached)文件,对于已经被staged文件,加入ignore文件时一定要先从staged移除,才可以忽略。
因此可以先从暂存区中删除掉这部分文件

 git rm --cached testFile

如果删除整个文件夹

 git rm --cached -r testFile

这样,在.gitignore中写testFile,这个文件才可以被忽略掉。

2、git强制中断,之后无法上传

将中断后生成的lock删除,rm -f ./.git/index.lock

然后再用git reset HEAD
回滚到add之前的版本中。

3、解决每次Git提交都要输入密码

3.1 临时方法

之前遇到一个问题,我们已经添加了ssh公钥,但是每次提交的时候,还是要我们输入密码,能不能不输入密码呢?
其实是可以的,步骤如下:
3.1.1、进入到所要提交的工程文件夹下
3.1.2、输入 ssh-add ~/.ssh/id_rsa命令,注意:id_rsa是你的私钥的名字

3.1.3、如果出现Could not open a connection to your authentication agent.
输入
ssh-agent bash
3.1.4、然后继续输入 ssh-add ~/.ssh/id_rsa

3.1.5、至此需求实现

3.2 永久方法–只对单个秘钥有效,创建一个新的秘钥

3.2.1、用当前的私钥创建一个不需要密码的私钥

$ openssl.exe rsa -in .ssh/id_rsa -out .ssh/id_rsa_new
Enter pass phrase for .ssh/id_rsa:
writing RSA key

3.2.2、将旧的私钥备份到id_rsa_old

mv id_rsa id_rsa_old

3.2.3、将新的私钥赋值到原来用于提交工程私钥

mv id_rsa_new id_rsa

4、如果commit时message写错了怎么办?

git commit --amend

Will open your editor, allowing you to change the commit message of the most recent commit. Additionally, you can set the commit message directly in the command line with:

git commit --amend -m "New commit message"

5、将本地分支推送到远程

5.1$ git push origin develop

6、将本地某一部分的代码,切换到以前版本的代码

git checkout f68b9748ae3 -- src/gisComponets/*

7、使用git远程登录linux

ssh centos@11.23.3.3

然后输入密码,就可以登录了

10、创建一个tag

在文件夹上右击“Git bash”出现命令框

git tag -a 1.2.6 -m 'version 1.2.6'  引号中是说明信息 
git push --tags  就可以在Bitbucket网上看到创建的tag

11、删除某个tag

在文件夹上右击“Git bash”出现命令框

git tag -d 1.2.6  删除这个tag(本地) 
git push origin :refs/tags/1.2.6   删除这个tag(服务器),这时可以发现Bitbucket网上的那个tag不见了

12、git 删除已经追踪的文件

查看发现这些文件并没有被忽略掉。查了资料发现,想要.gitignore起作用,必须要在这些文件不在暂存区中才可以,.gitignore文件只是忽略没有被staged(cached)文件,对于已经被staged文件,加入ignore文件时一定要先从staged移除,才可以忽略。

删除文件
git rm –cached testFile
删除文件夹
git rm –cached -r testFileFloder
删除所有已被追踪的文件
git rm –cached -r .
这样,在.gitignore中写testFile,这个文件才可以被忽略掉。

13、git追踪已忽略文件夹下的个别文件
1)、主动忽略相关文件

/lib/rocket-theme
/lib/index.js
/lib/rocketUi.js
/lib/package-lock.json/lib/rocket-theme
/lib/index.js
/lib/package-lock.json

2)、忽略整个目录,然后强行追踪某个文件
在gitignore中添加要忽略的目录

/lib/

再强制追踪某个文件

git add /lib/test.txt -f

14、分支切换error: The following untracked working tree files would be overwritten by checkout

可以使用git clean命令清除某些文件。

git clean 参数
-n 显示将要删除的文件和目录;
-x —–删除忽略文件已经对git来说不识别的文件
-d —–删除未被添加到git的路径中的文件
-f —–强制运行

git clean -n
git clean -df
git clean -f
git clean -xf

猜你喜欢

转载自blog.csdn.net/y491887095/article/details/82352620