Q Code

遇事不决 可问春风 春风不语 遵循自心

Git基础命令

简简单单的一些常用命令

ssh

一般项目开发需要开发者在平台中配置自己的密钥

  1. 首先查看当前是否存在 密钥

    1
    cd ~/.ssh
  2. 若存在,执行下面命令打开对应文件复制即可

    1
    cat ~/.ssh/id_rsa.pub
  3. 若不存在,则执行下面命令生产即可

    可以根据自己的需求,如果不设置密码就直接按回车

    1
    $ ssh-keygen -t rsa -C "git账号"

    git init

    初始化当前目录,即创建Git仓库

git config

git的基本配置

  • git config –list 查看已经配置的git参数
  • git config –global 当前用户(全局)下的配置
    1
    2
    3
    // git 提交前必须要配置 用户名和邮箱,会记录到历史中
    git config --global user.name 'lsq' // 配置全局git用户名 'lsq'
    git config --global user.email 'xxx.qq.com' // 配置全局git邮箱 'xxx.qq.com'

git clone

克隆仓库(常用克隆远程仓库)

1
git clone 'https://git.xxxx'

git add

删除文件后需要 git add -A, 光 git add. 不行,区别如下:

  • git add -A 保存所有的修改
  • git add . 保存新的添加和修改,但是不包括删除
  • git add -u 保存修改和删除,但是不包括新建文件。

    所以默认使用git add -A就行

git commit

  • git commit -m”提交的描述”

    该命令会将暂存区修改内容提交至本地仓库中,若文件未添加至暂存区,则提交时不会提交任何修改。

  • git commit -a

    相当于运行 git add -u把所有当前目录下的文件加入缓存区域再运行git commit.
    注意!对于新增的文件,并没有被commit, 一般使用方式如下

    git commit –a –m“本次提交描述”

  • git commit –amend 修改提交或者叫追加提交

    如果已经提交代码到服务器,但是发现有部分代码需要改动,又不想生成新的commit id 即可用这种方式,git add .后 执行 git commit –amend

git checkout

一般用来操作分支或者文件

  • git checkout 切换分支

    如果当前本地分支存在,即切换到该分支,如果本地不存在对应分支,就去远程分支找,找到则切换

  • git checkout -b 创建分支并切换到该分支

    相当于执行 git branch , git checkout

  • git checkout 文件回退

    举个栗子:小程序开发中,每次编译都会更新一次packpross.json文件,对于推送代码时,不能将此文件推送到仓库,此时可以使用该方法
    git add . 前 使用 git checkout packpross.json (工作区对应路径)
    然后正常 git add . , git commit -m’’ (git pull …, git commit -m””) , git push …

git branch

分支类操作,包括创建分支,删除分支等

  • git branch

    查看当前本地分支 list

  • git branch -a

    查看所有分支包括远程分支与本地分支

  • git branch -d/-D

    删除分支 -D 表示不管当前分支有么有merge

  • git branch -m oldBranchName newBranchName

    重命名本地分支名

git push

该命令在于本地分支的更新以及推送到远程分支包括主机

  • git push <远程主机名> <本地分支名>:<远程分支名>

    举个栗子: 当前本地分支名为 dbg_test 推送到远程分支 dbg_dev 代码如下:
    git push origin dbg_test:dbg_dev

  • git push origin <本地分支名>

    此命令默认将本地分支名作为远程分支名推送,如,当前本地分支test git push origin test:test

  • git push origin HEAD

    同上面操作,将本地分支作为远程分支,并推送代码到远程分支

  • git push origin HEAD:master

    将当前分支推送到远程分支, 这种操作不用考虑当前本地分支的名字

  • git push origin :test

    此命令会删除远程分支test

git pull

作用是要是从远程主机某个分支的内容更新到本地的某个分支

  • git pull <主机名><远程分支名>:<本地分支名>

git stash

将当前分支的修改形成一个缓存栈都保存起来,可以后续继续开发
听起来有点类似commit ,但是它不会生成commit id,
更适合于多需求开发或者push时只允许存在一个commit id 时

  • git stash

    默认将当前的分支文件的修改(不包括新建)保存起来

  • git stash -a

    在git stash 基础上增加新建或者删除文件的保存

  • git stash save “描述”

    对当前保存添加描述

  • git stash list

    查看当前存在的stash list

  • git stash apply stash@{index}

    取出第index个保存记录,不删除对应stash

  • git stash pop stash@{index}

    取出第index, stash,并删除该stash

git reset

主要用于回退版本

  • git reset HEAD^

    回退版本,一个^表示一个版本,可以多个,另外也可以使用 git reset HEAD~n这种形式。

  • git reset commit-id

    指定commit id 回退版本

  • git reset HEAD

    回退文件

git revert

撤销一个提交的同时会创建一个新的提交,也就是用一个新提交来消除一个历史提交所做的任何修改.
案例如:多人协作项目中,如果其中一个人的代码合入后出现问题,需要剔除对应代码

  • git revert commit-id revert

    剔除指定commit id 的代码提交

  • git revert –abort

    终止此次revert操作(有可能会有代码冲突)

git merge

合并分支的作用, 例如一个开发的习惯,一个分支对应一个需求
本地开发分支dbg_test
每天早晨先pull最新主分支代码,再合并到开发分支,继续开发

1
2
3
4
git checkout master
git pull
git checkout dbg_test
git merge