Git学习笔记


Git简介:Git是目前世界上最先进的分布式版本控制系统。

学习的目的主要用来连接GitHub仓库

Git安装

  • Linux安装:sudo apt-get install git就可以直接完成Git的安装;

  • MAC安装: 第一种方法安装homebrew,然后通过homebrew安装Git,具体方法 请参考homebrew的文档:http://brew.sh/。

    第二种方法更简单,也是推荐的方法,就是直接从AppStore安装Xcode,Xcode集成了Git,不过默认没有安装,你需要运行Xcode,选择菜单 “Xcode”->“Preferences”,在弹出窗口中找到“Downloads”,选择 “Command Line Tools”,点“Install”就可以完成安装了。

  • windows安装:https://git-scm.com/downloads

基础配置

  • 登录Github账号
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

注意git config命令的–global参数,用了这个参数,表示你这台机器上所有的Git仓库都 会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

  • 创建版本库(repository)

    1、建立空目录

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

    2、变成版本库

    git初始化
    git init,通过这个命令将这个目录变成git可以管理的仓库,会在当前目录下多一个.git目录,用来跟踪管理库,该目录默认是隐藏的,可以使用ls -ah命令查看。

     $ git init
     # Initialized empty Git repository in /Users/michael/learngit/.git/

    3、把文件添加到版本库

    使用notepad++编写一个readme.txt文件于目录文件下(/learngit);

    用命令git add告诉Git,把文件添加到仓库:

    $ git add readme.txt

    用命令git commit告诉Git,把文件提交到仓库:

    $ git **commit** -m "wrote a readme file"  #-m后面输入的是本次提交的说明,可以输入任意内容

上传文件流程汇总:

$ git add readme.txt
$ git commit -m "wrote a readme file" 
$ git push -u origin master #第一次上传需-u,后续不需要

远程仓库绑定

本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以,需要设置:

  1. 创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没 有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开 Shell(Windows下打开Git Bash),创建SSH Key:
$ ssh-keygen -t rsa -C "youremail@example.com"

如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub 两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub 是公钥,可以放心地告诉任何人。

  1. 登陆GitHub,打开“Account settings”,“SSH Keys”页面:

然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容,点“Add Key”,你就应该看到已经添加的Key

注:

可以添加多个Key,即多台电脑提交

GitHub上免费托管的Git仓库,任何人都可以看到(但只有你自己才能改)

添加远程仓库

将本地已有文件推送到新建仓库步骤

  1. 创建新库

登录GitHub——Create a new repo——Repository name填入learngit—— Create repository
2. 已经连接好密钥的情况下,在需要推送的文件夹下初始化

git init
  1. 关联本地仓库
    在本地的推送文件夹下运行命令:
    $ git remote add origin git@github.com:Sumsung524/learngit.git

如果连接远程仓库时连接仓库错误,需要解除连接关联的仓库:
删除关联的origin的远程库命令

git remote rm origin
  1. 把本地库的所有内容推送到远程库上(git push -u origin master)
$ git add *
$ git commit -u "first push"
$ git push -u origin master
  1. 一般提交 (git push origin master)
    后续修改只需一般提交
    $ git add *
    $ git commit -u "提交描述"
    $ git push origin master

把本地master分支的最新修改推送至GitHub。

Git版本控制系统跟踪纯文本文件的每次的改动,比如在第5行加了一个单词“Linux”,在第8行删了一个单词“Windows”。而git无法跟踪二进制文件的变化,比如图片、视频、word文件等二进制格式文件。

从远程库克隆

1、登录GitHub,创建新的远程库。

2、本地库克隆

$ git clone git@github.com:Sumsung524/远程库名.git

要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone命令克隆。

Git支持多种协议,包括https,但ssh协议速度最快。

我这里以码云为例,拉取同一仓库

ssh:
git clone git@gitee.com:ge_minglin/gitskill.git

https:
git clone https://gitee.com/ge_minglin/gitskill.git

版本回退

  1. 查看历史
$ git log #详细历史记录
$ git log --pretty=oneline #简短式历史记录

回退版本选择

版本退回Git中,HEAD表示当前版本,HEAD^表示上一版本,依次类推,回退版本次数较多时,可以使用HEAD回退次数,如HEAD100

  1. 回到上一版本
git reset --hard HEAD

只是在本地回退到上一次commit版本,并未推送至远程仓库。
可以使用git reflog命令看到,HEAD指向上一个版本,也就是本地回到了上一个版本
但是origin/master,origin/HEAD还是指向的原来版本,也就是远程仓库还是原来的版本。

  1. 回到未来的版本

回到上一版本后后悔了怎么办,找到git log之前版本的commit id号 输入前五个字符即可

git reset --hard 1094a

如果之前没有使用git log命令,找不到commit id号,使用git reflog,用来记录你的每一次命令,可以找到之前版本的commit id号

工作区和暂存区

工作区,就是你在电脑里能看到的目录

版本库,也就是工作区里面隐藏的目录.git,版本库中还有一个暂存区。
也就是git add添加文件的时候就是将文修改放到暂存区,然后用git commit提交更改,把版本库中暂存区的所有内容提交到当前分支。

工作区与版本库

常用命令

git status

git status 命令用于查看在你上次提交之后是否有对文件进行再次修改。
红色表示改动过但未上传文件,在工作区的文件;
绿色表示git add后本次新增文件。

git log

查看git commit历史记录

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

$ git log --pretty=oneline

git rm

1、使用rm命令将工作区的文件删除

2、使用git rm 文件名git commit 即可将与版本库同步删除。也可直接使用此步骤。

  • 如果是误删,可以使用git checkout命令恢复。

    $ git checkout -- test.txt

    git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是 删除,都可以“一键还原”。

注意:从来没有被添加到版本库就被删除的文件,是无法恢复的!

git pull

把远程仓库修改的更新拉取下来。

将远程仓库的代码获取并合并,将远程仓库的文件获取下来,本地新增的文件不会删除。
如果远程仓库修改了,可以使用git pull下来保持更新,然后再将本地新增的文件push上去。

git reset –hard [commit id]

工作区文件回到某个版本,相比远程仓库的新增文件不会发生改变,但是远程仓库不会因命令而发生改变。

参考教程

学习教程:


评论
 上一篇
JavaScripts记录 JavaScripts记录
JavaScripts记录快速入门 如何运行JavaScript代码 直接嵌入 <html> <head> <script> alert('Hello, world')
2020-07-06
本篇 
Git学习笔记 Git学习笔记
Git简介:Git是目前世界上最先进的分布式版本控制系统。 学习的目的主要用来连接GitHub仓库 Git安装 Linux安装:sudo apt-get install git就可以直接完成Git的安装; MAC安装: 第一种方法安装ho
2020-06-25
  目录