git相关操作整理


- Github使用之git回退到某个历史版本:

1. 查找历史版本

1
2
> 使用git log命令查看所有的历史版本,获取你git的某个历史版本的id,假设查到历史版本的id
> 是:fae6966548e3ae76cfa7f38a461c438cf75ba965

2. 恢复到历史版本

1
> $ git reset --hard fae6966548e3ae76cfa7f38a461c438cf75ba965

3. 把修改推到远程服务器

1
> $ git push -f -u origin master

- git如何避免”warning: LF will be replaced by CRLF“提示?

在Windows下使用Git进行修改提交时,控制台显示了如下输出内容:1warning: in the working copy of ‘styles/global.css’, CRLF will be replaced by LF the next time Git touches it这是因为目前的Git仓库由于跨操作系统操作而引发了部分文件的换行符转换问题。具体来说,Linux、macOS、Windows操作系统对于文本文件的换行符有不同的标准,因此一个文件如果与上次操作的系统环境不同,Git自然会在文件对比时识别到标识符被修改,从而引发提示。LF和CR字符在不同的操作系统中被用作操作符,其中LF(0x0A, \n)的初始定义是将光标从当前位置下移一行,不涉及移动到该行行首位置的动作,而CR(0x0D, \r)的原始含义则是将光标前移到当前行的行首,不涉及下移的动作。Linux系操作系统(含macOS,虽然它在OSX时期曾经使用过CR)使用LF直接表示光标换行+移到行首;Windows组合使用了CRLF(0x0D 0x0A, \r\n),无疑是符合标准语义的做法。尽管这不是一个Bug或错误,但还是可以通过如下方式对Git进行配置,以避免在每次提交代码时显示:

Linux/macOS系统下在提交代码时自动将CRLF转换为LF

1
> $ git config --global core.autocrlf input

Windows系统下在提交代码时自动将LF转换为CRLF

1
> git config --global core.autocrlf true

- git remote 远程仓库介绍和用法:

  1. 远程仓库的作用

    使用Git的远程仓库可以实现团队协作开发。

  2. 远程仓库的使用介绍
    假设我们已经有了一个远程仓库,地址是:https://github.com/CnPeng/test.git
    1)克隆远程版本仓库到本地:
    https://github.com/CnPeng/test.git版本库中的代码克隆到本地

     
    1
    git clone https://github.com/CnPeng/test.git

    2)查看远程仓库的信息:
    执行 git remote 命令之后 ,只是会单纯的列出所有远程仓库的名字,不会展示远程仓库的地址

     
    1
    2
    git remote -v       
    git remote
  3. 将远程版本库中的最新代码同步到本地
    Git 提供了两种命令来完成此功能,分别是 fetch 和 pull,它们区别及用法如下所示:

    1
    git fetch origin master

    执行这个命令后,就会将远程版本库上的代码同步到本地某个地方,不过同步下来的代码并不会 合并到任何分支上去,而是会存放在到一个 origin/master 分支上,之后再调用 merge 命令将 origin/master 分支上的修改合并到主分支上即可

     
    1
    2
    git merge origin/master
    git pull origin master

    pull 命令则是相当于将 fetch 和 merge 这两个命令放在一起执行了,它可以从远程版 本库上获取最新的代码并且合并到本地,
    将远程的某个分支上的代码拉到本地

     
    1
    git pull [remote-name] [branch-name]

    这个 remote-name 是远程仓库的代名称,branch-name 是分支名
    实际使用中,需要先通过pull将代码拉到本地,处理完冲突之后,再执行push

  4. 将修改后的代码同步到远程版本库

    1
    git push origin master

    其中 origin 是远程版本库的 Git 地址的代名称,master 部分指定的是同步到哪一个分 支上,上述命令就完成了将本地代码同步到 https://github.com/CnPeng/test.git 这个版本库的 master 分支上的功能。

    将远程的某个分支上的代码拉到本地

    1
    git pull [remote-name] [branch-name]

    这个 remote-name 是远程仓库的代名称,branch-name 是分支名

  5. 添加远程仓库

    1
    git remote add [shortname] [url]

    如:git remote add dev git://github.com/CnPeng/test.git ,这样,就可以用字符串 dev 来代指该仓库地址。在使用 git remote -v 查看仓库列表的时候,就会有一个 dev 的仓库列表。

  6. 查看远程仓库信息

    1
    git remote show [shortname]

    查看某个远程仓库的详细信息,如:git remote show origin 将会显示出shortname为origin的远程仓库的详信息

  7. 重命名远程仓库

    1
    git remote rename [old-name] [new-name]

    将远程仓库重新命名,如:git remote dev cnpeng ,执行这句代码之后,就会将shortname为dev的远程仓库重新命名为 cnpeng

  8. 删除远程仓库(解除与远程仓库的关系)

    1
    git remote rm [shortname]

- 连接Github与本地

首先右键打开git bash,用户名和邮箱根据你注册github的信息自行修改,然后输入下面命令:

1
2
git config --global user.name "godweiyang"
git config --global user.email "792321264@qq.com"

然后生成密钥SSH key:

1
ssh-keygen -t rsa -C "792321264@qq.com"

git bash中输入

1
cat ~/.ssh/id_rsa.pub

打开github,在头像下面点击settings,再点击SSH and GPG keys,新建一个SSH,名字随便。将输出的内容复制到框中,点击确定保存。

输入ssh -T git@github.com,如果出现你的用户名,验证成功。

打开博客根目录下的_config.yml文件,这是博客的配置文件,在这里你可以修改与博客相关的各种信息。

修改最后一行的配置:

1
2
3
4
deploy:
type: git
repository: https://github.com/godweiyang/godweiyang.github.io
branch: master

repository修改为你自己的github项目地址。

- GitHub仓库重命名目录/文件夹

举例说明如何将github中的” basicApp”文件夹更改为” basicapp”

1
2
3
4
5
6
7
8
9
$ git ls-files
$ git mv basicApp basicapp_temp
$ git add .
$ git commit -am"temporary change"
$ git push origin master
$ git mv basicapp_temp basicapp
$ git add .
$ git commit -am"change to desired name"
$ git push origin master

PS:git ls-files将向您展示github如何看到您的文件夹名称