Git 笔记

来源:互联网 发布:福建广电网络集团张远 编辑:程序博客网 时间:2024/06/06 09:38

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 教程 (当真是业界良心……)

0 0