git 从0到1

版本控制

创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录:

$ mkdir learngit
$ cd learngit
$ pwd
/Users/michael/learngit

初始化一个Git仓库,使用git init命令。所添加文件放到learngit下面

添加文件到Git仓库,分两步:

  1. 使用命令git add <file>,注意,可反复多次使用,添加多个文件;
  2. 使用命令git commit -m <message>,完成。
  • 要随时掌握工作区的状态,使用git status命令。

  • 如果git status告诉你有文件被修改过,用git diff可以查看修改内容。

git log命令显示从最近到最远的提交日志,需要友情提示的是,你看到的一大串类似1094adb...的是commit id(版本号),和SVN不一样,Git的commit id不是1,2,3……递增的数字,而是一个SHA1计算出来的一个非常大的数字,用十六进制表示

如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数:

$ git log --pretty=oneline

首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交1094adb...(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

只要上面的命令行窗口还没有被关掉,你就可以顺着往上找啊找啊,找到那个append GPLcommit id1094adb...,于是就可以指定回到未来的某个版本:

$ git reset --hard 1094a

Git提供了一个命令git reflog用来记录你的每一次命令

  • HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id

  • 穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。

  • 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本

远程仓库

查看当前的远程仓库可以用 git remote 命令,加上 -v 选项,显示对应的克隆地址

添加远程仓库

git remote add [remote-name] [email protected]:Dreaming-life/oneday.git


从远程仓库抓取数据

正如之前所看到的,可以用下面的命令从远程仓库抓取数据到本地:

$ git fetch [remote-name]

推送数据到远程仓库

第一次推送加-u

git push -u origin master

出现如下错误:

error: src refspec master does not match any.
error: failed to push some refs to ''

原因:

本地仓库为空

ssh的key配置

 ls -al ~/.ssh 查看是否存在秘钥证书

$ ssh-keygen -t rsa -C "Dreaming-life"  生成新的秘钥证书,.pub为公钥,复制粘贴到GitHub的ssh key中并生成

git push -u origin master


推送生效

后面的推送就可以直接使用命令

$ git push origin master

执行修复公钥命令,解决问题 key_load_public: invalid format

ssh-keygen -f ~/.ssh/id_rsa -y > ~/.ssh/id_rsa.pub
 

查看远程仓库信息

git remote show [remote-name] 查看某个远程仓库的详细信息

远程仓库的删除和命名

$ git remote rename 原来的 重命名

$ git remote rm 名字

猜你喜欢

转载自blog.csdn.net/qq_38738033/article/details/80980036