git recommend(alive)

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

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

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

初始化并跟踪远程分支:

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

 
代码暂存(用于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 log --graph
  查看分支: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 branch -m oldName newName
  2、将重命名后的分支推送到远程
    git push origin newName
  3、删除远程的旧分支
    git push --delete origin oldName
  4、显示如下,说明删除成功
    To https://xx.com/xx/xx.git
    [deleted] old-name

标签相关

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 fetch (拉取远端分支信息)

  git branch -av 查看所有分支信息

  git checkout -b test <想要跟随的分支>

tag的简单使用

from: https://blog.csdn.net/jdsjlzx/article/details/98654951

1.创建tag:
创建 tag 是基于本地分支的 commit,而且与分支的推送是两回事,就是说分支已经推送到远程了,但是你的 tag 并没有,如果把 tag 推送到远程分支上,需要另外执行 tag 的推送命令。

git tag <tagName> //创建本地tag

git push origin <tagName> //推送到远程仓库

若存在很多未推送的本地标签,你想一次全部推送的话:

git push origin --tags

以上是基于本地当前分支的最后的一个commit 创建的 tag ,但是如果不想以最后一个,只想以某一个特定的提交为tag ,也是可以的,只要你知道commit 的id。

git log --pretty=oneline //查看当前分支的提交历史 里面包含 commit id

git tag -a <tagName> <commitId>

2.查看标签
查看本地某个 tag 的详细信息:

git show <tagName>

查看本地所有 tag:

git tag 或者 git tag -l 

查看远程所有 tag:

git ls-remote --tags origin

3.删除标签
本地 tag 的删除:

git tag -d <tagName>

远程 tag 的删除:

git push origin :refs/tags/<tagName>

如下所示:

git tag -d 12345 #删除本地记录
git push origin :refs/tags/12345 #删除远程记录

把本地tag 推送到远端:

git push origin :<tagName>

4.检出标签
git checkout -b <branchName> <tagName>

因为 tag 本身指向的就是一个 commit,所以和根据commit id 检出分支是一个道理。 

但是需要特别说明的是,如果我们想要修改 tag检出代码分支,那么虽然分支中的代码改变了,但是 tag标记的 commit还是同一个,标记的代码是不会变的,这个要格外的注意。

其它

命令git tag -a <tagname> -m "XXX..." 可以指定标签信息。

命令git tag -a v0.1.0 -m "release 0.1.0 version" 创建附注标签。

命令git checkout [tagname] 切换标签。

回滚操作

 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端口配置

然后在提交到远端覆盖。

posted @ 2020-01-30 19:58  酒觉  阅读(304)  评论(0编辑  收藏  举报