技巧积累--git等版本控制工具

本文介绍了Git中的常见问题解决办法,如clone失败、退出vim编辑器、解决冲突等,并详细阐述了gitlog、gitshow、gitcommit等命令的使用方法。此外还提供了gitreset的不同参数用法以及如何通过gitreflog恢复已删除的commit记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.git clone失败,查看 相应的error log,显示是 secure Storage的问题,就是密码存储出问题了,将存储的密码删掉重新存就可以了

git bash中执行如下命令:

rm -rf ~/.eclipse/org.eclipse.equinox.security/

或者 在eclipse中选择如下操作:Window -> Preferences

General -> Security -> Secure Storage -> Content 然后展开左边的树选择相关内容,随后点击 “delete”按钮

 

2.git bash 退出vim编辑窗口方法:在非输入状态(即非insert状态,按esc可以切换)最下面输":q!"回车

 

3.从版本控制工具上下载来的项目,src目录变成了包名,在eclipse中可以Build Path--Configure build path--source--工程名/src

 

4.git log --stat   查阅最近的提交修改

git show <hashcode> <filename>  我们打算查看某个文件在某次提交中的修改:

git log --pretty=oneline <filename>  查看这个文件的所有历史记录

git diff <hashcode-before-right> <hashcode> <filename> 查看目标文件两个版本之间的差异

git commit 进入GUN nano编辑器  添加你的commit imformation 然后ctrl+o,回车保存,再ctrl+x退出。

git commit -a  把所有add了的文件都加入commit,然后进入编辑器编辑commit信息。

git commit -m  “commit imformation” 直接在后面添加commit 信息然后提交commit

git commit --amend  进入编辑器 修改最后一次commit的信息。

------------------------------------

git reset --git重置,有三个参数 –soft –mixed –hard,根据参数不同,会对working tree和index和HEAD进行重置:
 git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息
 git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
 git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容

怎么恢复git reset后的commit?
1.git reflog
2.找到要恢复的commit号,例如98ad499
3.git reset 98ad499

git rebase会产生patch(补丁)存在.git下的rebase文件夹中

-----------------------------------
查看远程分支   git branch -a
查看本地分支   git branch
创建分支 test  git branch test
把分支推到远程分支 git push origin test
切换分支到test git checkout test
删除本地分支   git branch -d xxxxx

git reflog 可以查看所有分支的所有操作记录(包括commit、reset、checkout、rebase等的操作),包括已经被删除的commit记录,git log则不能察看已经删除了的commit记录

----------------------------------------------------

git需要当前项目中所有变动都提交后才能更新,这一点跟svn不一样,svn可以更新单独的文件

.gitignore只能作用于Untracked Files,也就是那些从来没有被 Git 记录过的文件(自添加以后,从未 add 及 commit 过的文件),已经被git记录过的文件无效,关于gitignore怎么忽略已经push的文件,正确做法是:

  1.  从 Git 的数据库中删除对于该文件的追踪;(git rm -r --cached logs/xx.log)--这一句只是删除最终状态,不是删除物理文件。
  2.  把对应的规则写入 .gitignore,让忽略真正生效;
  3.  提交+推送。(git commit -m "" ;git push)
具体可看https://segmentfault.com/q/1010000000430426


-----------------------------------------------------


eclipse中解决git冲突:http://blog.youkuaiyun.com/rosten/article/details/17068285

大体的思路就是将冲突的文件修改好,然后add index,然后commit,然后push

-------------------------------------------------------

gitlab中迁移工程快捷方便的做法:

git remote set-url origin remote_git_address

git push origin --all
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值