Git 笔记

e.txt
index e69de29..013b5bc 100644
— a/readme.txt
+++ b/readme.txt
@@ -0,0 +1,2 @@
+Git is a distributed version control system.
+Git is free software.
\ No newline at end of file


* `git log`

 查看版本信息

$ git log

commit 9e0ae1d02df7fb97f1cd87ac788c560c11eb9a05
Author: huangmubin huangmubin@qq.com
Date: Tue Sep 27 14:40:48 2016 +0800

append GPL

commit d6d680248f2363bb0b89bb0efe0231c9050fe950
Author: huangmubin huangmubin@qq.com
Date: Tue Sep 27 14:39:28 2016 +0800

add distributed

commit 7cb70b215334d329a2eaee9be1d67c0581c5800d
Author: huangmubin huangmubin@qq.com
Date: Tue Sep 27 14:28:48 2016 +0800

wrote a readme file

* `git log --pretty=oneline`

 简化信息 成 commit id + commit

$ git log –pretty=oneline

9e0ae1d02df7fb97f1cd87ac788c560c11eb9a05 append GPL
d6d680248f2363bb0b89bb0efe0231c9050fe950 add distributed
7cb70b215334d329a2eaee9be1d67c0581c5800d wrote a readme file


* `git log --graph --pretty=oneline --abbrev-commit`

用图表显示

$ git log –graph –pretty=oneline –abbrev-commit

  • 55f1da8 merge with no-ff
    |\
    | * 4264eb0 add
    |/
  • 0257385 Merge branch ‘name’
    |\
    | * e6a5fe2 name
  • | cb9c8c4 mast
  • | 07b9c74 test
    |/
  • 196ccf1 remove
  • 441b100 YES
  • 0645d41 git3
  • a6ffc9a 2
  • 0cab1e6 git tracks changed
  • a6c4963 understand how stage works
  • 9e0ae1d append GPL
  • d6d6802 add distributed
  • 7cb70b2 wrote a readme file


* `git reflog`

检查自己做过的所有 Git 操作。
输出为
版本id 顺序: 操作: commit

$ git reflog

9e0ae1d HEAD@{0}: reset: moving to 9e0ae1d02df7f
d6d6802 HEAD@{1}: reset: moving to HEAD^
9e0ae1d HEAD@{2}: commit: append GPL
d6d6802 HEAD@{3}: commit: add distributed
7cb70b2 HEAD@{4}: commit (initial): wrote a readme file


# 分支

* `git branch`

查看分支数量

$ git branch

  • dev
    master

* `git branch <name>` 创建新分支
* `git checkout <name>` 切换到分支

git checkout dev
Switched to branch ‘dev’


* `git checkout -b <name>` 创建新分支并切换

git checkout -b dev

Switched to a new branch ‘dev’


* `git merge <branch>` 把某个分支的内容合并到当前分支

$ git merge dev

Updating 196ccf1..07b9c74
Fast-forward
readme.txt | 1 +
1 file changed, 1 insertion(+)


* `git merge <branch>` 把某个分支的内容合并到当前分支

$ git merge –no-ff -m “merge with no-ff” dev

Merge made by the ‘recursive’ strategy.
readme.txt | 3 +++
1 file changed, 3 insertions(+)


* `git branch -d <branch>` 删除某个分支

$ git branch -d dev

Deleted branch dev (was 07b9c74).


* `git branch -D <branch>` 强行删除某一个分支
  • 查看分支:git branch
  • 创建分支:git branch
  • 切换分支:git checkout
  • 创建+切换分支:git checkout -b
  • 合并某分支到当前分支:git merge
  • 删除分支:git branch -d
  • 强行删除:git branch -D

# Bug 分支

* `git stash`

把当前工作区的所有东西都临时存储起来并返回原始状态。

$ git stash

Saved working directory and index state WIP on master: 55f1da8 merge with no-ff
HEAD is now at 55f1da8 merge with no-ff


* `git stash list`

查看被储存起来的列表

$ git stash list

stash@{0}: WIP on master: 55f1da8 merge with no-ff


* `git stash apply stash@{0}`

恢复某一个保存点,并且不删除它。

* `git stash drop stash@{0}`

删除一个保存点

* `git stach pop stash@{0}`

恢复并删除某个保存点

# 标签

* `git tag` 查看所有标签
* `git tag <tag name>` 新增标签
* `git tag <tag name> <commit id>` 给某个一提交打上标签
* `git show <tag name>` 显示标签信息
* `git tag -a <tag name> -m <tagCommit> <commit id>` 创建带文字说明的标签
* `git tag -d <tag name>` 删除标签


# 远程提交

## SSH Key 秘钥

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

$ ssh-keygen -t rsa -C “youremail@example.com”


你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。

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

2. 到远程仓库中设置 id_rsa.pub 文件里的内容。作为 SSH Key

## 关联远程仓库

$ git remote add origin git@github.com:michaelliao/learngit.git


## 推送 master 分支的所有内容

/// 第一次

git push -u origin master


/// 之后

git push origin master


michaelliao 是仓库名称

## 克隆一个仓库

$ git clone git@github.com:michaelliao/gitskills.git
“`

参考资料

廖雪峰: 史上最浅显易懂的 Git 教程 (当真是业界良心……)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值