git 从0到1 (github)

版本控制

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

 

$ 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] git@github.com:Dreaming-life/oneday.git[remote-name] git@github.com: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 ''

原因:

本地仓库为空

错误:

fatal: 'origin' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
 

原因:本地和github没有设置密钥

设置完,重新添加仓库并执行git push -u origin(仓库名) master

ssh的key配置

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

$ ssh-keygen -t rsa -C "Dreaming-life"  生成新的秘钥证书,.pub为公钥,

测试ssh keys是否设置成功。

$ ssh -T git@github.com

Hi xxx! You've successfully authenticated, but GitHub does not provide shell access. #出现词句话,说明设置成功。

复制粘贴到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 名字

Tortoisegit  clone  需要设置setting 

绑定本地git的ssh ,然后就可以愉快的玩耍了

 

总结

1下载git (个人需要tortoisegit,配置git的ssh)

2生成公私钥

3github,码云配置公钥

4git 设置用户,remote绑定远程仓库

5,git 第一次push -u 剩下的直接push

 

电脑window安全中心账号密码凭证,账号密码为传到该远程仓库的账号密码

添加Git Config 内容
进入git bash终端, 输入如下命令:
git config --global credential.helper store

执行完后查看C:\Users\目录下的.gitconfig文件,会多了一项:还有一个生成的.git-credentials
[credential]
helper = store

重新开启git bash会发现git push时不用再输入用户名和密码

 

! [rejected]        master -> master (fetch first)......

出现这个问题是因为仓库中的README.md文件不在本地代码目录中,可以通过如下命令进行代码合并

git pull --rebase origin master

然后再

git push origin master

便可上传成功 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值