Git操作和问题记录

1.前言

1. 每次push代码之前,先从服务器pull代码,保证本地代码是最新的
    git pull origin master --allow-unrelated-histories

2.Git Tag操作

2.1 Tag操作流程

    1. $ git tag test -m '信息'            创建本地Tag
    2. $ git push origin test              推送本地Tag testone到远程仓库
    3. $ git push origin :refs/tags/test   删除远端的Tag标签
    4. $ git tag -d test                   删除本地的Tag标签
    5. $ git tag           展示本地和远端的Tag列表以你当前的代码版本为基准)

2.2 其他命令

命令git push origin --tags可以推送全部未推送过的本地标签;        

2.3 Tag操作问题记录

remote: GitLab: You are not allowed to change existing tags on this project
没有权限操作

$ git push origin testone
error: src refspec testone does not match any.
产生原因:需要先在本地创建Tag再进行推送即可

3.正常修改代码推送

  1. git add test.java 进入到对应的目录,添加修改的文件
  2. $ git commit -m ‘info’ 提交add的文件,并添加注释信息
  3. $ git log -n 1 –stat 查看最后一次提交了那些文件
  4. $ git push origin master 把提交的文件推送到远程仓库

3.1 git pull和push遇到的问题

1.$ git push origin master
 ! [rejected]        master -> master (non-fast-forward)
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
原因:本地的代码不是最新的
解决:推送代码前需要先从服务器pull最新的代码,

2.$ git pull origin master --allow-unrelated-histories
    ....
     * branch            master     -> FETCH_HEAD
    error: The following untracked working tree files would be overwritten by merge:
            binary/....apk
    Please move or remove them before you merge.
    Aborting

分析:从服务器pull下的文件和本地的文件合并产生了冲突
解决:$ git clean -d -fx  删除一些没有 git add的文件


3. $ git pull origin master --allow-unrelated-histories
Automatic merge failed; fix conflicts and then commit the result
分析:自动合并失败
解决:1.$ git status   查看那些文件有冲突
     2.$ git reset --hard origin/master     丢弃本地所有的修改

4.Git 版本回溯(使用TortoiseGit操作)

4.1撤销修改

1.工作区中右击->TortoiseGit->show log
2.选中对应的版本节点->右击Reset "master" to this...
3.Reset Type
    soft
    mixed(默认)
    hard 可以让出现黄色或者红色冲突的问题变成绿色(具体原因待续)                        

4.2Git reset详解

git reset有三个选项,--hard、--mixed、--soft。

//仅仅只是撤销已提交的版本库,不会修改暂存区和工作区
git reset --soft 版本库ID
//仅仅只是撤销已提交的版本库和暂存区,不会修改工作区
git reset --mixed 版本库ID
//彻底将工作区、暂存区和版本库记录恢复到指定的版本库
git reset --hard 版本库ID

最后,有兴趣的可以关注下方的公众号,会定期分享一些知识,以及工作中所遇到问题的解决方案。微信扫描二维码就可以添加关注:

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.为什么要写这个文档 本文是结合项目中使用git的经验并参考《Git权威指南.pdf》总结出来的。《Git权威指南.pdf》全强大很细,但有些东西太广太细,不适合快速上手。本文档适合在项目实践中想快速上手git的新手。先看本文档基本上手,在实际使用中遇到什么问题在深入研究《Git权威指南.pdf》或者google,这种学习规划的效率应该是最好的。欢迎更正和补充。 2.GIT和SVN、CVS的区别 版本库分两种 集中式版本库:CVS和SVN 分布式版本库:GIT轻量级,高性能 集中式版本库的缺点:代码集中放在一台服务器上,必须有网络才能连接服务器。 GIT的最大优势:每个人都会在本地有自己的版本库,而不是连到服务器公共的版本库。所有的历史记录都会存储在本地版本库中,向版本库提交代码无需连接远程版本库,而是记录在本地版本库中。 用git push可以把修改上传到远程的主版本库中。 其实SVN的本地历史比较也就相当于本地版本库,只是功能没有那么强大,只能比较单个文件的本地历史记录。 在SVN中版本库在服2.3.务器上,在GIT中,版本库不在服务器上,而在本地workspace中的.git目录中。 3.为什么要使用git 本次项目的版本库主要在本地修改,但也可能在其他地区进行merge等操作,所以用分布式版本管理工具git。 (基于项目版本管理经验修改,如果意见,请指正,谢谢!)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值