美文网首页
Git 使用笔记

Git 使用笔记

作者: 一个理想主义的大兵 | 来源:发表于2017-04-08 21:05 被阅读0次

    git pull 问题

    1. 今天在使用git pull拉取远程库版本时,出现如下错误:
    fatal: No remote repository specified.  Please, specify either a URL or a
    remote name from which new revisions should be fetched.
    
    1. 按照错误提示,使用git pull con master注:con是建立的远程库连接,即git remote add con git@github.com:MrCheJinYing/Concurrency
      出现如下错误提示:(错误还原不出来了,大概是下面这个意思)
    fetal:  exit unrelated-histories
    
    1. 用如下命令解决问题:
      git pull con master --allow-unrelated-histories

    git与远程库(remote repository)连接的方式

    1. 与远程库建立授权关系后(ssh-keygen -t rsa -C "youremail@example.com"),可以直接git clone git@github.com:username/repositoryName.git

      此操作会自动建立本地库与远程库、本地主分支(master)与远程主分支(master)的联系,之后的pull和push操作即可进行,不需额外的操作

    2. 远程建立repository后,本地建立repository并推送,需要手动建立库、分支的联系

      • 授权:ssh-keygen -t rsa -C "youremail@example.com"
    • 添加远程库:git remote add origin(任意名字) git@github.com:username/repositoryName.git
      • 建立分支关系:git branch --set-upstream-to=origin/master(远程分支) master(本地分支)
      • git pullgit push origin master
    1. 过程中有其他错误,可根据提示灵活处理

    git branch

    1. 查看分支状态:
      • 本地与远程: git branch -va
      • 查看本地分支:git branch
      • 查看远程分支:git branch -r
    2. 删除分支:
      • 删除本地分支:git branch -d [branch-name]
      • 删除远程分支:git branch -dr [origin/branch-name]

    git commit 撤销后的恢复

    一个意识:一些操作(merge、reset、revert等)都是针对本地库,而不是肉眼能看见的工作区,不要把工作区的当成本地库!

    commit操作后,想撤销本次的变动(reset操作并不安全,会造成版本丢失)

    • git reset head^:撤销commit提交,本地库恢复到上一个版本,工作区不变
    • git reset --hard head^:撤销commit提交,本地库和工作区同时恢复到上一个版本

    git status

    用法:列出未追踪的文件、本地库与工作区之间的差异,追踪git addgit commit进展

    处理工作区与本地库的差异

    git checkout 不仅仅有切换分支的功能

    工作区 —> 本地库:git checkout [filename]

    本地库 —> 工作区:git add [filename] git commit [filename] -m "commet"

    git rm

    • git rm file
    • git rm —cache file
    • git rm —cache -r directory

    清除工作区,回到最近的版本

    下面的例子要删除所有工作目录下面的修改, 包括新添加的文件. 假设你已经提交了一些快照了, 而且做了一些新的开发

    • git reset --hard
    • git clean -df

    运行后, 工作目录和缓存区回到最近一次commit时候一摸一样的状态,git status会告诉你这是一个干净的工作目录, 又是一个新的开始了!

    git checkout

    • 检出新分支

      git chekcout -b branch_name

      等同于以下两步操作

      git branch brach_name git checkout branch_name

    git revert

    这条命令用于分布式代码管理的回滚

    主要区别于git resetgit reset <commit>,会将该版本之前的版本全部抹掉。这样在多人合作的模式下,如果我们想回滚远程主分支中的代码,会抹掉其他人的提交,相当危险。

    git revert <commit>:撤销某个版本的提交,即只撤销这个版本的提交(这个版本提交了什么就撤销什么),并生成一个新的版本,原版本依然保留。这个新版本只提交到了本地库,还需要git push到远程仓库,才能完成远程仓库代码的回滚。

    Reference : 回滚错误修改

    相关文章

      网友评论

          本文标题:Git 使用笔记

          本文链接:https://www.haomeiwen.com/subject/mnkrattx.html