<
git学习
>
上一篇

利用github pages搭建hexo静态博客过程!
下一篇

树莓派安装系统之后的一些配置

Git 学习

git

Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

一、安装git

1.在Linux上安装git

ubuntu上的命令:

$ sudo apt-get install git

如果是其他版本的Linux可以通过源码安装。

先从官网下载源码,然后解压,依次输入:./config , make , sudo make install这几个命令。

2.在Mac OS 上安装git

在Mac上安装推荐从APPSTORE安装。

3.在Windows上安装git
  1. 从git官网下载程序安装,按默认一直点下一步就可以。

  2. 安装完成后,在开始菜单或者右键里可以找到git/git bash here点击运行出现类似命令行窗口的东西,恭喜你git安装成功了!

  3. 然后在命令行里配置你的用户名和email地址。

$ git config --global user.name "youname"
$ git config --global user.eamil "youemail" 

二、创建仓库

仓库就是版本库,英文名repository ,每个文件的修改、删除都在版本库里并且可以被追踪。

命令:

$ mkdir Learn   //创建文件夹
$ cd Learn      //进入文件夹Learn
$ git init      //初始化,把这个目录变成git仓库

这时文件夹里会出现一个.git目录,如果没有看到那就打开隐藏文件。

三、把文件添加到版本库

  1. 首先我们建立一个文本文档命名为README.txt,用命令添加到仓库:
$ git add README.txt    //git add <file>可以多次使用,添加多个文件
  1. 用命令git commit告诉git,把文件提交到仓库。-m后面的内容是本次提交的说明,可以是任意的内容:
$ git comnit -m "新建一个README.txt"
  1. 可以使用命令git status 查看当前仓库的状态:
$ git status 
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   README.txt

no changes added to commit (use "git add" and/or "git commit -a")
  1. 使用命令git diff可以查看文件做了什么修改:
$ git diff README.txt

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

  1. 使用命令git log显示从最近到最远的提交日志:
$ git log   //如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数
$ git log  --pretty=oneline
  1. HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭
$ git reset --hard commit_id    //commit_id是版本号
  1. 使用git reflog查看命令历史,以便确定要回到未来的哪个版本
$ git reflog 
  1. 使用git checkout 命令可以丢弃工作区的修改
$ git checkout -- file
  1. 使用git rm命令用于删除一个文件
$ git rm README.txt

四、把文件添加到远程仓库

  1. 由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以第一步是创建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文件的内容。

  1. 要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git
$ git remote add origin git@github.com:zhaozhifu-catshak/Learn.git
  1. 关联后,使用命令git push -u origin master第一次推送master分支的所有内容,此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改

  2. 用命令git clone克隆一个远程库到本地

$ git clone git@github.com:zhaozhifu-catshak/Learn.git

五、创建分支

  1. 首先,我们创建read分支,然后切换到read分支:
$ git checkout -b read
Switched to a new branch 'read'
  1. git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
$ git branch read       //创建read分支
$ git checkout read     //切换到read分支
Switched to branch 'read'
  1. 使用git branch命令查看当前分支:
$ git branch
* read
  master
  1. git branch命令会列出所有分支,当前分支前面会标一个*号。

然后,我们就可以在read分支上正常提交。

  1. 使用git merge命令用于合并指定分支到当前分支。
$ git merge read
Updating d46f35e..b17d20e
Fast-forward
 readme.txt | 1 +
 1 file changed, 1 insertion(+)

注:如果要合并到master主分支,要先切换到master主分支
  1. 合并完成后,就可以放心地删除read分支了
$ git branch -d read
Deleted branch dev (was b17d20e).
  1. 删除后,查看branch,就只剩下master分支了:
$ git branch
* master
  1. 用git log –graph命令可以看到分支合并图.

  2. 合并分支时,加上–no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。

$ git merge --no-ff -m "merge with no-ff" read

//-m参数可以把commit描述写进去。
  1. 使用git branch -D file 命令强行删除分支
  2. 推送分支:
$ git push origin read

六、创建标签

  1. 首先,切换到需要打标签的分支上,使用命令 git tag打标签。
$ git branch
* read
  master
$ git checkout master
Switched to branch 'master'
$ git tag v1.0
//$ git tag v0.9 commit id
//可以用commit id 给固定版本打标签
  1. 用命令git tag查看所有标签.
$ git tag
//v0.9
v1.0
  1. 命令git tag -a tagname -m “blablabla…” 可以指定标签信息
$ git tag -a v0.1 -m "version 0.1 released" 1094adb
  1. 使用参数-d删除 本地 标签
$ git tag -d v0.1
Deleted tag 'v0.1' (was f15b0dd)
  1. 命令git push origin :refs/tags/tagname 可以删除一个远程标签

  2. 命令git push origin tagname 可以推送一个本地标签;

  3. 命令git push origin –tags可以推送全部未推送过的本地标签;

  4. 让git显示颜色

$ git config --global color.ui true

七、LFS(Large File Storage)

Top
Foot