zoukankan      html  css  js  c++  java
  • git recommend(alive)

     

    初始化并跟踪远程分支:

    echo "# test" >> README.md
    git init
    git add README.md
    git commit -m "first commit"
    git remote add origin https://github.com/jiujue/branchName.git
    git push -u origin master
    合并分支到 master : get merge 
    图形化显示 : git log --graph
    代码暂存(用于debug):
    1. 暂存工作状态git stash

    1. 创建并切换到debug分支git checkout -b bug01

    2. debug ...

    3. git checkout master

    4. 合并debug后的分支git merge bug01

    5. 查看暂存的工作状态git stash list

    6. 回到原工作状态 : git pop

    查看分支:git branch 
    创建分支:git branch name 
    切换分支:git checkout name 工作区文件内容会立即变化成对应分支的内容 
    创建+切换分支:git checkout -b name 
    合并某分支到当前分支:git merge name 
    删除分支:git branch -d name
    
    查看分支合并情况:git log –graph –pretty=oneline –abbrev-commit
    
    合并分支(fast forward):git merge name 
    合并分支(禁用 Fast forward):git merge –no-ff -m “描述” dev

    1、创建标签
    git tag tagname 对当前版本建立标签 git tag tagname commit_id 对历史版本建立标签 git tag -a tagname -m “描述…” commit_id 添加说明 git tag 查看所有标签 git show tagname 查看某个标签具体信息

    2、删除标签
    git tag -d tagname 删除本地标签

    3、推送标签
    git push origin tagname 推送本地的某个标签到远程 
    git push origin –tags 一次性推送所有分支

    4、删除远程标签
    git tag -d tagname 先删除本地 
    git push origin :refs/tags/tagname 从远程删除

     设置用户名与邮箱(用户标识,必要)

     git config --global user.name "[名称]"  

     git config --global user.email [邮箱]   

    ======================================================================================================================

     from : https://www.cnblogs.com/songgj/p/8965580.html

    git的撤销与回滚在平时使用中还是比较多的,比如说我们想将某个修改后的文件撤销到上一个版本,或者是想撤销某次多余的提交,都要用到git的撤销和回滚操作。撤销分两种情况,一个是commit之前,一个是commit之后,下面具体看下这两种情况。

      一.git commit之前

            未添加到暂存区的撤销(没有git add)

            添加进暂存区的撤销(git add后)

    复制代码
    $ git status
    On branch test_git
    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: new_src/app/Http/Controllers/Frontend/KyHome/KyHomeUnitTrait.php
        modified: new_src/app/Http/Controllers/Frontend/KyHome/KyHomeWordFilterTrait.php

    
    
    复制代码

    可以通过

     git checkout -- filename来撤销修改
    git checkout -- new_src/app/Http/Controllers/Frontend/KyHome/KyHomeWordFilterTrait.php

    再次查看文件状态发现选择的文件已经成功被撤销了。

    复制代码
    $ git status
    On branch test_git
    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: new_src/app/Http/Controllers/Frontend/KyHome/KyHomeUnitTrait.php
        
    复制代码

    如果想将多个文件一次性撤销可以用

     git checkout -- .

    上面是 未添加到暂存区的撤销

    下面是添加到暂存区的

    复制代码
    $ git status
    On branch test_git
    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:   new_src/app/Http/Controllers/Frontend/KyHome/KyHomeApp.php
            modified:   new_src/app/Http/Controllers/Frontend/KyHome/KyHomeComment.php
    复制代码
    复制代码
    $ git add -A
    $ git status
    On branch test_git
    Changes to be committed:    已经添加暂存区了
      (use "git reset HEAD <file>..." to unstage)
    
            modified:   new_src/app/Http/Controllers/Frontend/KyHome/KyHomeApp.php
            modified:   new_src/app/Http/Controllers/Frontend/KyHome/KyHomeComment.php
    复制代码

    从暂存区撤销

    $ git reset HEAD new_src/app/Http/Controllers/Frontend/KyHome/KyHomeApp.php
    Unstaged changes after reset:
    M       new_src/app/Http/Controllers/Frontend/KyHome/KyHomeApp.php

    如果想一次性将所有暂存区文件撤销回来,还是上面的命令,不过不用加文件路径。

    $ git reset HEAD
    Unstaged changes after reset:
    
    M       new_src/app/Http/Controllers/Frontend/KyHome/KyHomeApp.php
    M       new_src/app/Http/Controllers/Frontend/KyHome/KyHomeComment.php

    二.git commit之后

    如果当commit提交后想撤销的话,这就需要revert命令。git revert 命令是撤销某次操作,而在此次操作之前和之后的提交记录都会保留。

    先修改了几个文件然后commit 再用git log查看提交记录。

    commit 2842c8065322085c31fb7b8207b6296047c4ea3
    Author: songguojun <songgj@kingnet.sh>
    Date:   Sat Apr 28 11:21:30 2018 +0800
    
        add content

    然后使用revert  后面跟上git提交的commitid

    git  revert 2842c8065322085c31fb7b8207b6296047c4ea3
    复制代码
    Revert "add content"
    
    This reverts commit 2842c8065ffe2085c31fb7b8207b6296047c4ea3.
    
    # Please enter the commit message for your changes. Lines starting
    # with '#' will be ignored, and an empty message aborts the commit.
    # On branch test_git
    # Changes to be committed:
    #       modified:   new_src/app/Http/Controllers/Frontend/KyHome/KyHomeApp.php
    #       modified:   new_src/app/Http/Controllers/Frontend/KyHome/KyHomeComment.php
    复制代码

    然后在推送到远端更新远程仓库代码,修改的文件就撤销回来了。注意的是revert奇数次生效,偶数次又回到之前的修改状态。比如一个文件内容是a,那么修改为ab,revert后文件变成了a,如果在revert后文件又还原成ab了。

    还有就是如果想回到之前某个版本,可以用reset命令,可以回退到某次提交,那该提交之后的提交都会回滚,不过这种覆盖是不可逆的,之前的提交记录都没有了。所以平时开发中尽量注意,避免使用reset。

    用法:

    git  reset --hard  commit_id
    • --hard – 强制将缓存区和工作目录都同步到你指定的提交
     git  reset --hard fdeb212a5418cc8e31f32d63cf197550297468ec
    HEAD is now at fdeb212 增加mysql端口配置

    然后在提交到远端覆盖。

  • 相关阅读:
    UVA 11995
    LA 5031
    防卫导弹
    跳马问题
    UVA 11992
    POJ 3264 Balanced Lineup
    0-1背包
    石子合并
    小技巧
    Android广播中有序和无序的区别
  • 原文地址:https://www.cnblogs.com/jiujue/p/12243684.html
Copyright © 2011-2022 走看看