zoukankan      html  css  js  c++  java
  • git整理

    https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013760174128707b935b0be6fc4fc6ace66c4f15618f8d000/

     

    配置git身份信息:

    git config --global user.name "quzq"

    git config --global user.email "quzq@qq.com"

    查看配置的身份信息:

    git config user.name

    git config user.email

    使用git终端切换到文件夹下, 运行初始化, 来管理这个文件夹

    git init  # 初始完成会在文件夹下生成.git隐藏文件夹

    git remote add origin https://xxx.git  # 配置git的远程地址

    git push -u origin master           # 推送到远程库.

    git pull origin master              # 获取源代码

    git add .                        # 添加所有改变的文件到staged状态

    git add xx.py                     # 指定添加要提交的文件

    git commit -m “说明”              # 提交

    git log                          # 查看提交日志

    git status                        # 获取git详细状态

    git status -s                      # 同上, 获取简明信息

    git diff                          # 用来查看文件未add时的修改(staged状态下)

    git diff --cached                   # 用来查看add后的修改(staged状态下) 都是和源上的代码做对比

    git diff HEAD                      # staged与非staged状态都可用该命令查看更改

    git log --oneline                   # 查看提交日志, 在一行中显示

    git commit --amend --no-edit        # 把变更放入最后一次的变更中, 描述不变, 但是commitid会改变

     

    staged状态到非staged状态:

    使用git add 1.py,状态就成了staged. 如何回退非staged状态呢?   

    git reset 1.py            # 撤回了上次的add, 只是撤回操作步骤, 更改的内容还在

    git reset --hard commit_id  # 回到commitid所在的状态, 此状态之后的更改全部抹掉了, 是真的删掉了

                           # 即使使用该命令再回到以后, 也只保留那个时间点的东西, 在那之后编辑的

       # 但未保存的东西也会彻底消失.

    git log --oneline          # 用来查看截至当前的提交记录

    git log --oneline --graph    # 用来查看截至当前的提交记录(图形形式)

    git reflog               # 用来查看所有的提交记录,含未来. 辅助用于回去后再回到未来.

     

    对单个文件的回退:

    git reset commit_id 1.txt  # 不退版本, 只退文件到commitid, 文件内容不变

    git checkout commit_id -- 1.py  # 不退版本,只退文件到commitid,文件内容改变,其后修改丢弃.

    Git checkout -- 1.txt     # 用于文件被修改, 但未add, 丢弃本次修改的所有内容.

    # checkoutreset的区别

    checkout用于切换分支和从指定节点的缓存区中覆盖回某个文件

    Checkoutreset都可用于回复文件, checkout会直接作用到文件中和暂存区, reset只作用到暂存区, 不动文件

    单个文件回退:

    如未add: 使用Git checkout -- 1.txt  # 注意--后又空格

    已经add: 使用git reset 1.txt先撤回add操作, 再使用上面的还原修改

    分支系列:

    Git branch dev      # 创建dev分支

    Git branch          # 查看所有分支, 哪个带*号表示当前在哪个分支

    Git checkout dev     # 切换到dev分支

    Git branch -d dev     # 删除dev分支, 此时不能处于dev

    Git checkout -b dev   # 创建并移动到dev分支上.

    在各分支上做的修改不会影响master, 需要合并时使用如下命令:

    Git merge dev       # 合并devmaster, 当文件是新加入时会让编辑commit备注

    git merge --no-ff -m "合并83fa1.dev" 83fa1.dev  # 新建文件合并时可直接用改命令合并加命名

    # 临时缓存区

    Git stash         # 添加变更到临时缓存区

    Git stash pop     # 从缓存区拿回之前缓存的内容

    # 修改文件名

    git mv 旧名称 新名称

    # 删除本地分支及远程分支

    git branch -d 分支名称            -- 删除本地分支

    git push origin --delete 远程分支名称  -- 删除远程分支

    git branch -a                  -- 查看远程分支列表

    git branch                   -- 查看本地分支列表

    备注: 创建本地及远程分支及代码的提交与合并

    1. 更新master分支

    $git checkout master

    $git pull

    2. 将创先分支

    git checkout -b wb-fqg587009-merge3     # 在本地创建分支

    git push origin wb-fqg587009-merge3      # 将本地的分支推送到远程, 即在远程也创建个分支

    3. 在新分支上提交的case

    git add xxxx

    git commit -m

    git push origin wb-fqg587009-merge3

    4. 回到master

    git checkout master

    git merge wb-fqg587009-merge3

  • 相关阅读:
    [JZOJ 5788] 餐馆
    [JZOJ 5778] 没有硝烟的战争
    problems_scala
    好迷茫,好迷茫啊
    公布下我的数据库操作层
    关于数据库大并发量(未完成)
    关于http协议头
    管理心得体会
    数据库表分区
    公共的Json操作类
  • 原文地址:https://www.cnblogs.com/quzq/p/11462148.html
Copyright © 2011-2022 走看看