zoukankan      html  css  js  c++  java
  • 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@{序号}
     





  • 相关阅读:
    NoSQL生态系统——hash分片和范围分片两种分片
    NoSQL生态系统——事务机制,行锁,LSM,缓存多次写操作,RWN
    W5500 keep-alive的用途及使用
    APUE学习总结
    Web Socket rfc6455 握 (C++)
    java.nio分析软件包(三)---Charset理解力
    比量iOS6/iOS7, 3.5inch/4.0inch
    【从翻译mos文章】rac数据库,HC_&lt;SID&gt;.dat其他文件Oracle_Home用例下。
    Type mismatch: cannot convert from Enumeration&lt;String&gt; to Enumeration&lt;Object&gt;
    c++宏源证券编程
  • 原文地址:https://www.cnblogs.com/EmbeddedLiving/p/4110431.html
Copyright © 2011-2022 走看看