git学习笔记

mac自带git。

本地

git的配置,邮箱地址和用户名

  1. 配置邮箱
    $ git config –global user.email “799745776@qq.com

  2. 配置用户名
    $ git config –global user.name “plh”

  3. 查看当前的配置
    $ cat .git/config

git命令

下载代码

$ git clone git@github.com:…….

添加文件到Git仓库

先打开指定的文件夹。用cd.

  1. 放在暂缓区的命令
    $ git add Read.md
    $ git add .

  2. 本地提交仓库
    $ git commit -m “提交代码”

  3. 将提交推送到服务器
    $ git push origin master

  4. 查看状态
    $ git staus

  5. 更新本地代码
    $ git pull

分支管理

先在分支上进行操作,再合并到主干上。

  1. 查看所有本地分支
    $ git branch

  2. 列出所有远程分支
    $ git branch -r

  3. 创建分支
    $ git branch V2

  4. 将分支提交到服务器
    $ git push origin V2

  5. 切换分支
    $ git checkout V2
    修改V2分支上的文件,再提交本地修改,将提交推送到服务器上。分支内容修改,主干不变。

  6. 合并分支到主干
    切换到主干上再合并
    $ git checkout master
    $ git merge V2
    $ git push

  7. 删除分支
    $ git branch -d name

  8. 删除远程分支
    $ git push origin –delete name

$ git branch -dr [remote/branch]

版本还原

$ git checkout V2

  1. 将本地代码还原最近一次提交的修改
    $ git revert HEAD
    填写描述信息。保存退出。查看本地文件内容是否修改。
    git push origin V2
  2. 还原到指定版本
    $ git revert fxxxx

版本回退

  1. 显示当前分支的版本历史
    $ git log

  2. 恢复前一个版本
    git reset –hard HEAD^

  3. 恢复前两个版本
    $ git reset –hard HEAD^^

  4. 恢复前 N 版本
    $ git reset –hard HEAD~N

  5. 恢复指定版本
    $ (git lg) git reset –hard 版本号

  6. 查看指令使用历史,确定要回到未来的哪个版本
    $ git reflog

删除文件

1
$ git rm 文件名

添加和配置SSH公钥

SSH(Secure Shell)是一种安全协议,在你的电脑与GitLab服务器进行通信时,我们使用SSH密钥(SSH Keys)认证的方式来保证通信安全。你可以在网络上搜索到关于SSH密钥的更多介绍;下面我们重点讲解如何创建 SSH密钥,并将密钥中的公钥添加到GitLab,以便我们通过SSH协议来访问Git仓库。

创建SSH Key

1.进入SSH目录

cd ~/.ssh

(1)如果还没有 ~/.ssh 目录,可以手工创建一个(mkdir ~/.ssh),之后再通过cd ~/.ssh进入SSH目录

(2)可以通过ls -l命令查看SSH目录下的文件,来确认你是否已经生成过SSH密钥;如果SSH目录为空,我们开始第二步,生成 SSH 密钥;如果存在id_rsa.pub这个文件,说明你之前生成过SSH密钥,后面有介绍如何添加多个sshkey

1
$ ssh-keygen -t rsa -C "youremail@example.com"

生成的文件在/Users/user/.ssh。

2.生成SSH密钥

我们通过下面的命令生成密钥,请将命令中的YOUR_EMAIL@YOUREMAIL.COM替换为你自己的Email地址。

ssh-keygen -t rsa -C “YOUR_EMAIL@YOUREMAIL.COM

在SSH生成过程中会出现以下信息,按屏幕的提示操作即可;

1
2
3
4
5
6
7
8
$ ssh-keygen -t rsa -C "YOUR_EMAIL@YOUREMAIL.COM"
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/USERNAME/.ssh/id_rsa.
Your public key has been saved in /Users/USERNAME/.ssh/id_rsa.pub.
The key fingerprint is:
15:81:d2:7a:c6:6c:0f:ec:b0:b6:d4:18:b8:d1:41:48 YOUR_EMAIL@YOUREMAIL.COM

说明:

(1)一般情况下,在命令行中输入密码、口令一类的信息时是没有信息回显的。在我们这一步的操作中,输入passphrase口令时,命令行界面上不会随着键盘敲入密码而有什么反馈。

(2)当提示Enter passphrase (empty for no passphrase) : 时,可以直接按两次回车键输入一个空的 passphrase;也可以选择输入一个 passphrase 口令,如果此时你输入了一个passphrase,请牢记,之后每次提交时都需要输入这个口令来确认。

3.获取SSH公钥信息

SSH密钥生成结束后,你可以在SSH目录下看到私钥id_rsa和公钥id_rsa.pub这两个文件,不要把私钥文件id_rsa的信息透露给任何人。我们可以通过文本编辑器或cat命令来查看id_rsa.pub公钥信息。

(1)通过编辑器。使用你熟悉的文本编辑器,比如 记事本、Sublime Text等软件打开id_rsa.pub,复制里面的所有内容以备下一步使用。

(2)通过cat命令。在命令行中敲入cat id_rsa.pub,回车执行后命令行界面中会显示id_rsa.pub文件里的内容,复制后在下一步使用。

(3)通过直接使用命令将id_rsa.pub文件里的内容复制到剪切板中

Windows: clip < ~/.ssh/id_rsa.pub

Mac: pbcopy < ~/.ssh/id_rsa.pub

GNU/Linux (requires xclip): xclip -sel clip < ~/.ssh/id_rsa.pub

4.添加SSH公钥到gitlab

(1)打开https://gitlab.com/profileProfile配置页面,选择SSH Keys.
(2)添加SSH公钥

按照要求填写Title和Key,其中Title是Key的描述信息(如My_work_computer等),Key是上面复制的SSH公钥的内容,直接粘贴到输入框中保存即可。

5.测试SSH连接

ssh -T git@gitlab.com

如果连接成功的话,会出现以下信息。

Welcome to GitLab, USERNAME!

远程同步

  1. 下载远程仓库的所有变动
    $ git fetch [remote]

  2. 显示所有远程仓库
    $ git remote -v

  3. 显示某个远程仓库的信息
    $ git remote show [remote]

  4. 增加一个新的远程仓库,并命名
    $ git remote add [shortname] [url]

  5. 取回远程仓库的变化,并与本地分支合并
    $ git pull [remote] [branch]

  6. 上传本地指定分支到远程仓库
    $ git push [remote] [branch]

  7. 强行推送当前分支到远程仓库,即使有冲突
    $ git push [remote] –force

  8. 推送所有分支到远程仓库
    $ git push [remote] –all

补充

显示本地git库:

1
2
$ defaults  write  com.apple.finder AppleShowAllFiles -bool true
$ KillAll Finder

隐藏本地git库

1
2
$ defaults  write  com.apple.finder AppleShowAllFiles -bool false
$ KillAll Finder

其他

git help :git指令帮助手册
查看其他指令的做法:git help 其他指令

git config :git的配置信息相关(修改的是.git/config文件)
配置用户名:git config “user.name” 用户名(用于跟踪修改记录)
配置邮箱:git config “user.email” 邮箱(用于多人开发间的沟通)
查看配置信息:git config –l
编辑配置信息:git config –e(用vim编辑,:wq是退出vim编辑器)
设置指令的别名:git config alias.别名 原指令名称
设置带参数指令的别名:git config alias.别名 “原指令名称 参数”
将此设置应用到整个系统中:git config ––gloabal

git status :查文件的状态
查看某个文件的状态:git status 文件名
查看当前路径所有文件的状态:git status

git log :查看文件的修改日志
查看某个文件的修改日志:git log 文件名
查看当前路径所有文件的修改日志:git log
用一行的方式查看简单的日志信息:git log ––pretty=oneline
查看最近的N次修改:git log –N(N是一个整数)

git diff :查看文件最新改动的地方
查看某个文件的最新改动的地方:git diff 文件名
查看当前路径所有文件最新改动的地方:git diff

搭建GitHub远程仓库 – 配置SSH Key

  1. 注册一个GitHub帐号:https://github.com
  2. 打开“Account Settings”
  3. 点击“SSH keys”
  4. 配置Mac的SSH Key的公钥(用于限制提交)
    在Mac上生成SSH Key(在终端输入下面指令)
    cd ~/.ssh
    ssh-keygen -t rsa -C “你的邮箱地址”
    然后一直敲回车

  5. 然后就会在~/.ssh目录下生成SSH Key的秘钥对
    id_rsa :私钥,不可泄露
    id_rsa.pub :公钥,可以公开(将这个文件的内容粘贴到GitHub上)

  6. 利用cat指令可以查看文件的内容
    cat id_rsa.pub

团队开发-分支管理 - Tag

查看当前标签

$ git tag

在本地代码库给项目打上一个标签

$ git tag -a v1.0 -m ‘Version 1.0’

将标签添推送到远程代码库中

$ git push origin v1.0

使用tag,就能够将项目快速切换到某一个中间状态,例如产品开发线上的某一个稳定版本,签出v1.0标签

$ git checkout v1.0

从签出状态创建v1.0bugfix分支

$ git checkout -b bugfix1.0

查看远程分支

$ git branch -r

删除远程分支

$ git branch -r -d origin/bugfix1.0

.gitignore

.gitignore可以指定哪些文件不纳入版本库的管理

参考网址:https://github.com/github/gitignore

面试题

说明GIT合并的两种方法以及区别。

答:Git代码合并有两种:Git Merge 和 Git ReBase。Git Merge:这种合并方式是将两个分支的历史合并到一起,现在的分支不会被更改,它会比对双方不同的文件缓存下来,生成一个commit,去push。

Git ReBase:这种合并方法通常被称为“衍合”。他是提交修改历史,比对双方的commit,然后找出不同的去缓存,然后去push,修改commit历史。

文章目录
  1. 1. 本地
    1. 1.1. git的配置,邮箱地址和用户名
    2. 1.2. git命令
      1. 1.2.1. 下载代码
      2. 1.2.2. 添加文件到Git仓库
        1. 1.2.2.1. 分支管理
        2. 1.2.2.2. 版本还原
        3. 1.2.2.3. 版本回退
        4. 1.2.2.4. 删除文件
    3. 1.3. 添加和配置SSH公钥
      1. 1.3.1. 创建SSH Key
        1. 1.3.1.1. 1.进入SSH目录
        2. 1.3.1.2. 2.生成SSH密钥
        3. 1.3.1.3. 3.获取SSH公钥信息
        4. 1.3.1.4. 4.添加SSH公钥到gitlab
        5. 1.3.1.5. 5.测试SSH连接
      2. 1.3.2. 远程同步
    4. 1.4. 补充
      1. 1.4.1. 显示本地git库:
      2. 1.4.2. 隐藏本地git库
      3. 1.4.3. 其他
    5. 1.5. 搭建GitHub远程仓库 – 配置SSH Key
    6. 1.6. 团队开发-分支管理 - Tag
      1. 1.6.1. 查看当前标签
        1. 1.6.1.1. 在本地代码库给项目打上一个标签
      2. 1.6.2. 将标签添推送到远程代码库中
        1. 1.6.2.1. 使用tag,就能够将项目快速切换到某一个中间状态,例如产品开发线上的某一个稳定版本,签出v1.0标签
      3. 1.6.3. 从签出状态创建v1.0bugfix分支
        1. 1.6.3.1. 查看远程分支
      4. 1.6.4. 删除远程分支
      5. 1.6.5. .gitignore
  2. 2. 面试题
本站总访问量 本站访客数人次 ,