TIPS4_git的那些事儿

1.基本操作

git log -p file 查看某个文件的所有提交
git checkout id file只回退某个文件
git reset --hard id回退整个仓库
git log --oneline 只显示提交id和提交信息,每个提交一行
git remote -v 跟踪远程服务器
git reset id file 只回退某个文件到制定版本
git blame file  | grep veriable   //查看某个文件中具体变量的演变过程。
git reset HEAD~   //撤销本地提交但保留修改内容

2.git 添加ssh方式的推送

tina-ssh	ssh://... (push)
git remote add tina-ssh ssh://...
git push tina-ssh(远程服务器) master(远程分支):refs/for/master  推送

3.git 提交缺少changeID

1.回到该条提交的状态:git rebase -i HEAD~4 (这里4表示第四条,若最近一次提交则HEAD~)
2.拷贝服务器的hooks:gitdir=$(git rev-parse --git-dir);
scp -p -P 29418(填写端口号) xxx@gerrit.xxx.com:hooks/commit-msg ${gitdir}/hooks/
如:scp -p -P 29418 flyranchao@gerrit.163.com:hooks/commit-msg ${gitdir}/hooks/
3.重新提交:git commit --amend --no-edit(表示保留提交信息直接提交,不进入提交编辑界面)

4.git push -u origin master报错

无法推送一些应用到。。。
更新被拒绝,因为远程仓库包含您本地尚不存在的提交,这通常是因为另外一个版本已向该引用进行了推送,再次推送前需要整合远程变更。
-u 表示指定一个主机

git push -u origin +master
git pull --rebase origin master 合并分支
git push -u origin master

5.gitlib无法git clone

实时注册的账号,ssh key被更新了,

ssh -keygen -t rsa -b 4090 -c "youremail@test.com" eval "$(ssh-agent -s)"

在本地.ssh目录下重新复制id_rsa.pub中的ssh秘钥到gitlab->profile setting->ssh key添加即可。

6.未建立远程联系报错

使用git pull 或git push时提示:git there is no tracking information for the …
因为本地分支和远程分支没有建立联系。

git branch -a  先查看所有分支
git checkout <branch>  切换到对应分支
若还是不行则
git branch --set-upstream-to = origin/远程分支名 本地分支名

7.git log 提示:fatal:bad default revision ‘HEAD’

是因为刚初始化的仓库,还没有一次提交,执行git commint提交一次即可。

8.git pull提示:有太多不可达的松散对象

git prune删除即可。

9.强制撤销push到远程仓库的提交(一般不建议)

1.在远程仓库project->setting->protected branch,将master的保护取消。
2.切换到push前的版本id(本地)git reset --hard
3.强制撤回push:git push origin <分支名> --force

10.git checkout时出现头指针分离

本地有修改时使用git checkout id号进行版本回退容易产生头指针分离
1.git checkout <分支名> 先回到对应分支
2.git reset --hard id号  再回退版本

11.git 提交的界面设置

vim .gitconfig 中添加
[core]
editor = vim 使用vim作为提交时的编辑器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值