Git 使用笔记

2017-04-08  本文已影响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"
  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 status

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

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

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

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

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

git rm

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

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

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

git checkout

git revert

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

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

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

Reference : 回滚错误修改

上一篇下一篇

猜你喜欢

热点阅读