美文网首页GitGit使用
git常用命令备忘

git常用命令备忘

作者: Leoshi | 来源:发表于2017-03-18 23:56 被阅读60次

Refer:廖雪峰的Git教程

git init    # 初始化
git add  # 添加文件
git commit -m "first version"  # 提交

git status  # 查看当前状态
git diff file.name  # 查看文件修改情况
git log --pretty=oneline  # 查看日志

git reset --hard HEAD^  # 强制回退到上一版本
git reset --hard 543264  # 回退到某一版本
git reflog   # git命令记录

工作区与暂存区

需要注意的是:
第一次修改 -> git add -> 第二次修改 -> git add -> git commit

git checkout -- file.name    # 放弃工作区修改

命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:

  • readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
  • readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

总之,就是让这个文件回到最近一次git commit或git add时的状态。

用命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区。

rm file.name    # 删除文件
git rm file.name    # 在git中删除文件
checkout -- file.name  # 恢复文件

git remote add https://github.com/jlshix/flaskweb.git  # 添加远程库
git push -u origin master  # 第一次推送至远程库
git push origin master    # 推送至远程库
git clone https://github.com/jlshix/flaskweb.git    # 克隆远程库
# Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快
head & master Dev
git checkout -b dev    # 新建并切换到dev分支  相当于以下两条
git branch dev
git checkout dev

git branch # 查看分支
git checkout master  # 切换回master分支
git merge dev  #   将dev分支合并
git branch -d dev  # 删除dev分支
merge conflict
合并分支时若出现冲突需要手动合并,然后
git add git commit 解决冲突

使用git log --graph --pretty=oneline --abbrev-commit查看分支图

分支管理,禁用fastforward

$ git checkout -b dev
Switched to a new branch 'dev'

$ git add readme.txt 
$ git commit -m "add merge"
[dev 6224937] add merge
 1 file changed, 1 insertion(+)

$ git checkout master
Switched to branch 'master'

$ git merge --no-ff -m "merge with no-ff" dev
Merge made by the 'recursive' strategy.
 readme.txt |    1 +
 1 file changed, 1 insertion(+)

$ git log --graph --pretty=oneline --abbrev-commit
*   7825a50 merge with no-ff
|\
| * 6224937 add merge
|/
*   59bc1cb conflict fixed
no fastforward

在实际开发中,我们应该按照几个基本原则进行分支管理:

首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;

那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;

你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了.

所以,团队合作的分支看起来就像这样:

group programming

使用git stash命令可以保存当前工作空间

$ git stash
Saved working directory and index state WIP on dev: 6224937 add merge
HEAD is now at 6224937 add merge


$ git stash list
stash@{0}: WIP on dev: 6224937 add merge
git stash pop
$ git stash apply stash@{0}

开发一个新feature,最好新建一个分支;

如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除。

关于协作

  • 查看远程库信息,使用git remote -v
  • 本地新建的分支如果不推送到远程,对其他人就是不可见的
  • 从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交
  • 在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致
  • 建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name
  • 从远程抓取分支,使用git pull,如果有冲突,要先处理冲突

标签管理

打标签

  • 命令git tag <name>用于新建一个标签,默认为HEAD,也可以指定一个commit id
  • git tag -a <tagname> -m "blablabla...可以指定标签信息
  • git tag -s <tagname> -m "blablabla...可以用PGP签名标签
  • 命令git tag可以查看所有标签

操作标签

  • 命令git push origin <tagname>可以推送一个本地标签
  • 命令git push origin --tags可以推送全部未推送过的本地标签
  • 命令git tag -d <tagname>可以删除一个本地标签
  • 命令git push origin :refs/tags/<tagname>可以删除一个远程标签

附赠:Git Cheat Sheet

git-cheat-sheet

相关文章

  • git命令整理

    git常用命令 GIT常用命令备忘:http://stormzhang.com/git/2014/01/27/gi...

  • Git常用命令备忘

    Git常用命令备忘 git config --global user.name "robbin" git conf...

  • Git 常用命令及方法备忘录

    Git 常用命令及方法备忘录 WorkSpace: 工作区Index / Stage: 暂存区Repository...

  • Git常用开发流程

    前言 我们在【Git常用命令备忘】中,对Git的所有命令进行了汇总。但是,Git在项目中如何价值最大化地实践,我们...

  • git相关教程汇总

    1. git常用命令 git常用命令总结git常用命令讲解 2. git教程相关网站 廖雪峰的git教程猴子都能懂...

  • git操作

    Git原理 Git常用命令

  • Git常用命令备忘

    Git别名git config --global color.ui truegit config --global...

  • GIT常用命令备忘

    Git配置 Git常用命令 查看文件diff 查看提交记录 Git 本地分支管理 分支合并和rebase Git补...

  • git常用命令备忘

    2018-03-31这边是一些常用的 git 指令,常用就会自然记起来,不用硬背,你可以在遇到问题的时候再回来看这...

  • git常用命令备忘

    克隆指定分支 使用Git下载指定分支命令为:git clone -b 分支名 仓库地址 使用Git下载v.2.8....

网友评论

    本文标题:git常用命令备忘

    本文链接:https://www.haomeiwen.com/subject/pzkpnttx.html