• git日常操作


    0.准备工作

    0.1 git安装

     
    图形客户端建议使用source tree,中文界面

    http://www.sourcetreeapp.com/

    0.3 git帮助信息

    git help 
     
    git help 指令名称
     

    0.4 git配置

    显示配置信息
    git config -l --global
     
    修改基本配置
    git config --global user.name “姓名”
    git config --global user.email “邮箱”
    git config --global color.ui auto
    git config --global core.autocrlf input   
    git config --global push.default simple 

    0.5 git日志

    显示所有或某个文件的修改记录

    git log <可选的文件名>

    显示所有或某个文件的修改记录的概要(修改文件列别行数等)

    git log --stat

    显示某次提交中所有或某个文件的具体修改内容

    git show <提交ID> <可选的文件名>
     

    0.6 git操作记录(用于无限悔棋)

    操作记录显示
    git reflog show
     
    $ git reflog show
    1ab8fe7 HEAD@{0}: reset: moving to HEAD^
    f902b09 HEAD@{1}: reset: moving to HEAD@{3}
    1ab8fe7 HEAD@{2}: reset: moving to HEAD^
    f902b09 HEAD@{3}: reset: moving to HEAD@{1}
    1ab8fe7 HEAD@{4}: reset: moving to HEAD^
    f902b09 HEAD@{5}: commit: test
    1ab8fe7 HEAD@{6}: reset: moving to HEAD^
    815cee5 HEAD@{7}: commit: test
    1ab8fe7 HEAD@{8}: commit: added missed cacheLib.h
    a724beb HEAD@{9}: pull: Merge made by the 'recursive' strategy.
     
    回退到某次操作后的状态
    git reset HEAD@{序号}
     
    注意:没有提交到仓库中的代码无法恢复。
     

    0.7 git仓库构成

    查看本地仓库状态
    git status
     
    $ git status
    On branch dev                                                  =》 本地仓库当前branch名称
    Your branch is up-to-date with 'origin/dev'.    =》 本地仓库当前branch与远程仓库对应branch之间的差异
     
    Changes to be committed:                               =》暂存区内容
      (use "git reset HEAD <file>..." to unstage)
     
            modified:   Makefile
     
    Changes not staged for commit:                       =》工作区内容 (对仓库中文件的修改)
      (use "git add <file>..." to update what will be committed)
      (use "git checkout -- <file>..." to discard changes in working directory)
     
            modified:   Makefile
     
    Untracked files:                                                    =》工作区内容 (对私有文件的修改)                
      (use "git add <file>..." to include in what will be committed)
     
            build_native/
     
    显示临时缓冲区内容
    git stash list
     
    $ git stash list
    stash@{0}: On dev: clean 2
    stash@{1}: On dev: clean
     
     
    1.从远程仓库到本地仓库
     
    创建新的本地仓库
    git clone git@192.168.0.190:os.git <可选的本地仓库目录名称>
     
    从远程仓库获取最新内容并合并到当前分支
    git pull
     
    从远程仓库获取最新内容但是不合并
    git fetch
    2.从本地仓库到远程仓库
    本地仓库更新到远程仓库
    git push
    3.从本地仓库已有分支到私有分支
    切换到已有分支
    git checkout  <分支名称>
     
    从当前分支创建一个新分支并切换到新分支
    git checkout -b <新分支名称>
     
    从某个提交创建一个新分支并切换到新分支(用于查看内容或者查找问题)
    git checkout <提交ID> -b <新分支名称>
     
    查看branch信息
     
    git branch -v
     
    删除某个branch
    git branch -D <分支名称>
     
    3.从私有分支到本地仓库已有分支
    合并其他分支到当前分支
    git merge  <其他分支名称>
     

    如果有冲突,文件中会有如下内容:

    <<<<<<< 

    当前分支

    =======

    合并进来的分支

    >>>>>>> 

    解决冲突后,根据merge命令的提示将文件放入暂存区(stage区),然后提交

    终止当前合并操作

    git merge --abort

    合并某个提交到当前分支

    git cherry-pick <提交ID>

    5.从工作区到暂存区
    将工作区中的所有或某个文件放到暂存区(stage区)
    git add <可选的文件或者目录名>
     
    将工作区所有对仓库中代码的修改(tracked文件)放到暂存区(stage区)
    git add -u
     
    查看暂存区中对仓库中所有或某个文件的修改
    git diff --cached <可选的文件或者目录名>
    查看工作区中对仓库中所有或某个文件的修改
    git diff <可选的文件或者目录名>
    6.从暂存区到工作区
    将暂存区中对仓库中所有或某个文件的修改恢复到工作区
    git reset HEAD <文件或者目录名>
    7.从暂存区到本地仓库
    将暂存区中的内容提交到本地仓库(简单注释)
    git commit -m "注释信息"
     
    将暂存区中的内容提交到本地仓库(复杂注释,将会进入文本编辑界面)
    git commit
    修改上次提交的注释信息
    git commit --amend  -m "注释信息"
    8.从本地仓库到暂存区
    恢复到某次提交前的状态(修改内容仍然在工作区)
    git reset <提交ID^>
    注意:本操作实质上是复位到某次提交的前一次提交,并用其内容覆盖暂存区的内容,但当前修改内容仍然在工作区
    9.从本地仓库到工作区
    取消对某个文件或者文件夹的修改
    git checkout <文件或者目录名>   
    注意:本操作实质上是用本地仓库中的数据覆盖工作区中的内容
     
    恢复到某次提交前的状态(工作区修改内容被丢弃)
    git reset <提交ID^>
    注意:
    1.本操作实质上是复位到某次提交的前一次提交,并用其内容覆盖暂存区和工作区的内容
    2.如果工作区无修改内容,或者修改内容已保存到临时缓冲区,可以使用该命令查看某次提交的内容或者查找问题,查看完毕后通过reflog恢复。
    10.从工作区到本地仓库
    直接将文件提交到本地仓库(!!不经过暂存区,慎用)
    git commit -a -m "注释信息"
     
    11.从工作区到临时缓冲区
    将工作区中所有对仓库中代码的修改(tracked文件)放到临时缓冲区(stash区)
    git stash save "缓冲区描述"
    12.从临时缓冲区到工作区
    将临时缓冲区(stash区)中所有对仓库中代码的修改(tracked文件)弹出到工作区
    git stash pop stash@{序号}
     
    显示临时缓冲区某个缓存的内容
    git stash show stash@{序号}
    显示临时缓冲区某个缓存的内容
    git stash show stash@{序号}
     





  • 相关阅读:
    Photoshop 基础七 位图 矢量图 栅格化
    Photoshop 基础六 图层
    Warfare And Logistics UVALive
    Walk Through the Forest UVA
    Airport Express UVA
    Guess UVALive
    Play on Words UVA
    The Necklace UVA
    Food Delivery ZOJ
    Brackets Sequence POJ
  • 原文地址:https://www.cnblogs.com/EmbeddedLiving/p/4110431.html
Copyright © 2020-2023  润新知