美文网首页
git 使用笔记

git 使用笔记

作者: 执拗的男孩 | 来源:发表于2018-11-13 17:48 被阅读5次

持续更新中。。。

1.Git是作为第三方应用代码托管平台,提供付费和免费两种服务

2.Git常用命令

2.1使用Git前准备 需要配置的用户名和密码

git config --global user.name "user.name"

git config --global user.email "user.email"

git config --global --unset user.name "username"              #移除用户

git config --global --unset user.email "email"               #移除邮箱

eg:

  user.name=username  #账户号

  user.email=xxxxx                #密码

git config -l 查看当前电脑配置的用户信息``

2.2 clone一个远程库

1).git clone URL

2).查看Git地址 git remote -v

3).替换Git地址 git remote set-url origin URL

库的URL地址一般有两种形式 SSH 和 HTTPS

HTTPS:不管是谁,拿到url随便clone,但是在push的时候需要验证用户名和密码;

SSH:clone的项目你必须是拥有者或者管理员,而且需要在clone前添加SSH Key。SSH 在push的时候,是不需要输入用户名的,如果配置SSH key的时候设置了密码,则需要输入密码的,否则直接是不需要输入密码的。

创建SSH Key

$ssh-keygen -t rsa -C "${YourEmail}"    # "-t rsa"表示使用密钥的加密类型,还可以为dsa;-C设置注释文字,比如你的邮箱“YourEmail”,不一定要是github注册邮箱

敲入ls命令可以看到ssh-keygen在~/.ssh目录下生成的public/private key pair,其中id_rsa为密钥对中的私钥,需妥善保管;id_rsa.pub为密钥对中的公钥,可任意公开。

RSA是一种支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的。DSA(Digital Signature Algorithm,数字签名算法)是一种标准的DSS(数字签名标准)

通过cat命令可以查看id_rsa.pub内容然后在git账户下添加新的SSHKey

注意:添加时key添加id_rsa.pubz中的内容

参考:

1.http://blog.csdn.net/phunxm/article/details/45083335

2.http://www.tuicool.com/articles/mEvaq2

使用Mac 生成ssh key 的流程

1).查看本地是否存在 ~/.ssh/路径

  如果不存在 则需要创建 mkdir ~/.ssh

2).如果文件路径存在 则查看 id_rsa(私钥) id_rsa.pub(公钥) 是否成对出现 如是 则直接进入下一步

创建ssh key

ssh-keygen -t rsa -C "15560028009@163.com"

之后输入密码 一般推荐滤过

注:

ssh-keygen命令用于为“ssh”生成、管理和转换认证密钥,它支持RSA和DSA两种认证密钥。

-b:指定密钥长度;

-e:读取openssh的私钥或者公钥文件;

-C:添加注释;

-f:指定用来保存密钥的文件名;

-i:读取未加密的ssh-v2兼容的私钥/公钥文件,然后在标准输出设备上显示openssh兼容的私钥/公钥;

-l:显示公钥文件的指纹数据;

-P:提供(旧)密语;

-q:静默模式;

-t:指定要创建的密钥类型。

3).添加SSH key 将生成的公钥到相应的库目录### ## ###下

cat ~/.ssh/id_rsa.pub 

2.3 添加忽略文件  .ignore

创建库的时候 最好提前添加的配置文件(不然协作开发后边提交代码会遇到很多问题)

1.首先在文件夹目录下 创建 .ignore 文件 vim .ignore / touch .ignore

2.常见的文件命令

    参照:

    [ignore常见忽略文件]([ignore参考文件](https://github.com/github/gitignore/blob/master/Objective-C.gitignore))

2.4 Git查看本地文件常用命令

  1.)查看本地状态  git status

  2.) 查看本地分支 git branch

  3.) 查看远程分支 git branch -a

  4.) 查看本地某一个文件的更改  git diff -HEAD 文件名

创建分支

  git branch new branch

  git checkout -b new branch  创建并切换到新分支

  git push origin new branch  将本地新创建的分支推送到远程 同步创建新分支

删除分支

  git branch -d branch

2.5 版本管理

每次提交先stash,pull,stashpop 然后再commit,push

  添加更改

  git add .  添加全部的修改

  git add -f 添加修改的文件

  git log    显示提交的日志

注:

git add 的几种参数区别:

git add -A 保存所有的修改

git add . 保存新的添加和修改,但是不包括删除

git add -u 保存修改和删除,但是不包括新建文件。

上边的说法有待确认,git add -A 和 git add .测试之后是相同的效果 都是保存所有的修改

如果只想提交某个文件,可以使用git add 路径/文件名 或者 git add 路径/

  git checkout filename 该文件回退到上一个版本

  git checkout branch  切换分支

  git checkout commit_id  回退到commit_id提交版本  原来的提交并没有被还原 这时branch 提示 HEAD detached at xxxx 

版本回滚的方法:

1.如果提交的修改没有提交到暂存区

  git checkout .

  git checkout filepath

2.已经提交到版本库回滚到到某个版本

  git reflog  显示项目全部操作的日志 

  git reset --hard commit_id  强制回滚到某一版本

  git push -f branch  强制提交到远程 

  用上方法 log 日志也会被还原

注:log和reflog的区别

log 提交的日志

rflog 本地操作日志

撤销/重置部分修改

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>,就回到了场景1,第二步按场景1操作。

场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库

如果没有提交工作区 可以使用git checkout .撤销所有的更改

合并分支

git merge branch1 将分支branch1合并到当前分支

git rebase

merge合并的策略:

解决(Resolve)

递归(Recursive)

章鱼(Octopus)

我们的(Ours)

子树(Subtree)

参考:

状态:Untracked

工作区(workspace) 和 暂存区(stage)

通过git add 将所有的修改添加到暂存区

git commit 将暂存区的修改添加到工作区

git add -i 进入交互式shell模式

1: status      2: update      3: revert(恢复)      4: add untracked

5: patch(补丁:针对一个文件上传部分修改)      6: diff(区别)      7: quit      8: help

Fast-Forward 模式

--no-ff

[git-merge完全解析](https://www.jianshu.com/p/58a166f24c81)

当对提交的commit 不满意 需要重新编辑的时候 可以尝试该命令

git commit --amend 

git log --oneline  显示提交日志 且每次提交都一行显示

git patch

git tag

#如果已经提交到远程仓库

git revert 撤销 某次操作,此次操作之前和之后的commit和history都会保留,并且把这次撤销

作为一次最新的提交

    * git revert HEAD                撤销前一次 commit

    * git revert HEAD^              撤销前前一次 commit

    * git revert commit (比如:fa042ce57ebbe5bb9c8db709f719cec2c58ee7ff)撤销指定的版本,撤销也会作为一次提交进行保存。

git revert是提交一个新的版本,将需要revert的版本的内容再反向修改回去,版本会递增,不影响之前提交的内容

git reset 是把HEAD向后移动了一下,而git revert是HEAD继续前进,只是新的commit的内容和要revert的内容正好相反,能够抵消要被revert的内容。

git revert -m xxx commit_id

git reset/git reset --mixed commit_id  默认的方式 回退之前的版本 并保留之前的改动

git reset -–soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可

git reset -–hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容Git进阶

git diff 查看版本的改动

git diff HEAD 查看当前版本的改动

git diff HEAD^ 相对上一个版本的改动

git diff fileName 查看file相对当前版本的改动

git diff HEAD fileName 同上

另一种写法 git diff HEAD~n fileName

当版本没有改动 还可查看两个版本改动的

相关文章

  • Git book

    目录 git community book git入门 git笔记 git 用法 git安装使用手册 git命令大...

  • Git与Git flow使用笔记

    使用Git的一些真实的使用笔记,这不是理论,而是真实的使用过程中的一些笔记 基础Git与流程 git init 初...

  • Git

    Git使用笔记 下载(Window版):https://git-for-windows.github.io/ 安装...

  • Git常用命令

    本文作为平日使用git的笔记 查看文件状态: $ git status //查看文件状态 存储文件: $ git ...

  • Git入门及常用方法

    Git学习笔记 关于 Git 的背景知识 Git 是什么Git——分布式版本控制系统,Linus使用C编写 Git...

  • **git** 使用笔记

    git 使用笔记 git原理: 文件(blob)对象,树(tree)对象,提交(commit)对象 tree对象 ...

  • 2019-10-25

    git 使用笔记 git原理: 文件(blob)对象,树(tree)对象,提交(commit)对象 tree对象 ...

  • Git教程笔记

    笔记20170207:Git教程 初始化一个Git仓库,使用git init命令。 添加文件到Git仓库,分两步:...

  • 2019-07-12

    Git使用笔记 0、先将工作分支的内容提交 git add . git commit -m "说明文字" 1、切换...

  • Git学习笔记(廖雪峰)

    Git学习笔记(廖雪峰) 创建版本库 小结 初始化一个Git仓库,使用git init命令。 添加文件到Git仓库...

网友评论

      本文标题:git 使用笔记

      本文链接:https://www.haomeiwen.com/subject/knilfqtx.html