常用Git命令汇总

常用Git命令汇总

跟着R哥来到了新公司(一个从硬件向互联网转型中的公司),新公司以前的代码基本是使用SVN做版本控制,甚至有些代码没有做版本控制,所以R哥叫HG做了一次Git分享,准备把公司所有的代码用Git作版本控制。平时自己虽然天天使用Git,但是总感觉知识有些零散,于是汇总了一些常用的Git命令。

常用配置

--system #系统级别
--global #用户全局
--local #单独一个项目
git config --global user.name "xxxx" #用户名
git config --global user.email "[email protected]" #邮箱
git config --global core.editor vim #编辑器

git config --global alias.st status #按这种方法,配置别名
git config -l #列举所有配置

Git中3种状态的一些操作

#将工作区的修改提交到暂存区
git add <file>
git add .
#------------------------------------------

#将暂存区的内容提交到版本库
git commit <file>
git commit .
git commit -a #包括git add/ git rm /git commint 这三个操作,所有一般在操作工作区的时候,直接删除了文件,而不是使用git rm的,最后提交是可以用这个,如下
              #git commit -am "提交信息"
git commit -amend #修改最后一次提交的信息

#------------------------------------------

# 抛弃工作区修改(使用当前暂存区的内容状态去覆盖工作区,从而达到抛弃工作区修改的作用)
git checkout <file>
git checkout .  

#------------------------------------------
#改变暂存区的修改(其实是重置HEAD,将指定版本库的内容状态去覆盖暂存区,从而达到暂存区的改变)
git reset <file>  #从暂存区恢复到工作区(不指定版本id,则默认为最后一次提交的版本id)
git reset .  #从暂存区恢复到工作区
git reset $id # 恢复到指定的提交版本,该$id之后的版本提交都恢复到工作区
git reset --hard $id #恢复到指定的提交版本,该$id之后的版本提交全部会被抛弃,将不出现在工作区

#注:如果不小心使用了错误的HEAD重置,会发现HEAD指向了重置的版本id,该版本之后的版本提交都不见了,使用git log也无法找到,那么怎么恢复呢?使用下面两个命令
git reflog show master | head #会显示所有的版本记录
git reset --hard $id #重新重置,至于--hard,请根据你时候将改变的内容放到工作区还是直接抛弃进行选择

#------------------------------------------
#恢复某次提交(其实是某提提交的回滚操作,不影响其他的提交,所产生的效果创建一个新版本提交去回滚将指定的提交删除,包括产生的差异文件不会出现在工作区,而是直接被抛弃)
git revert <$id>
git revert HEAD
#这里有一个很好的讲解revert与reset的差异:git reset 是把HEAD向后移动了一下,而git revert是HEAD继续前进,只是新的commit的内容和要revert的内容正好相反,能够抵消要被revert的内容。

#------------------------------------------
#删除文件的几种方法(貌似Git2.0后有了变化)
#第一种直接在工作区删除
rm your_file #直接在工作区删除文件
git add -u . #将有改动的都提交到暂存区(包括修改的,删除的等操作),貌似git2.0 不加 -u 参数也可以
git commint -m "message" #提交版本库

#第二种方法直接在工作区删除
rm your_file #直接在工作区删除文件
git commit -am "message" #这个在前面提过,直接可以提交版本库,-a会包括包括git add/ git rm /git commint 这三个操作

#第三种方法使用git rm
git rm <file> #不仅在工作区将文件删除,同时将该删除操作提交到暂存区
git commint -m "message" #提交版本库

#关于git rm的其他补充
git rm --cached <file> #从暂存区中除去该文件,git将不再跟踪该文件的变更,但仍然在工作区内,在需要.gitignore时经常用到

文件直接比较差异Diff

git diff
git diff <file> #比较工作区与暂存区文件的差异
git diff --cached   # 比较暂存区和版本库差异

git diff <$id1> <$id2>   # 比较两次提交之间的差异
git diff <branch1>..<branch2> # 在两个分支之间比较

分支

git branch -r #查看远程分支
git branch new_branch_name #新建一个分支
git branch --merged #查看已经被合并到当前分支的分支
git branch --no-merged #查看未被合并到当前分支的分支

git checkout branch_name #切换分支
git checkout -b branch_name #创建分支并切换

git branch -d branch_name #删除分支
git branch -D branch_name #强制删除分支
git push origin :branch-name #删除远程分支(先在本地删除该分支),原理是把一个空分支push到server上,相当于删除该分支。

#从远程clone一个项目,虽然远程上该项目是有分支的,但clone下来后发现只有master分支,解决:
git checkout -b not_master_branch  origin/not_master_branch #本地创建一个分支,指向对应的远程分支
git pull origin not_master_branch #将远程的not_master_branch分支pull下来
git push origin not_master_branch #将修改后的not_master_branch分支push到远程的not_master_branch

远程

git remote -v                    # 查看远程服务器地址和仓库名称
git remote show origin           # 查看远程服务器仓库状态
git remote add origin [email protected]:robbin/robbin_site.git         # 添加远程仓库地址
git remote set-url origin [email protected]:robbin/robbin #修改远程地址
git remote rm #删除远程创库地址

从远程拉取内容,提交内容到远程

git pull #=git fetch + git merge
git fetch #拉取
git merge #合并

git push                         # push所有分支
git push origin master           # 将本地主分支推到远程主分支
git push -u origin master        # 将本地主分支推到远程(如无远程主分支则创建,用于初始化远程仓库)
git push origin <local_branch>   # 创建远程分支, origin是远程仓库名
git push origin <local_branch>:<remote_branch>  # 创建远程分支
git push origin :<remote_branch>  #先删除本地分支(git br -d <branch>),然后再push删除远程分支

暂存管理

git stash #将工作区做的修改暂存到一个git栈中
git stash list #查看栈中所有暂存
git stash apply <暂存编号> #回复对应编号暂存到工作区,如果不指定编号为栈顶的,注意:这些暂存还在栈中
git stash pop #将栈顶的暂存,恢复到工作区,并从栈中弹出
git stash clear #清空暂存栈

创建远程库

git clone --bare git_url_path #clone的时候,将其创建成远程创库
git --bare init #初始化项目的时候,创建成远程创库

部分参考Robbin Fan大神的博客《Git常用命令备忘》

参考http://www.jianshu.com/p/0f2ffa404ac1#

时间: 2024-10-13 16:07:25

常用Git命令汇总的相关文章

常用 Git 命令清单

我每天使用 Git ,但是很多命令记不住. 一般来说,日常使用只要记住下图6个命令,就可以了.但是熟练使用,恐怕要记住60-100个命令. 下面是我整理的常用 Git 命令清单.几个专用名词的译名如下. Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库 一.新建代码库 # 在当前目录新建一个Git代码库 $ git init # 新建一个目录,将其初始化为Git代码库 $ git init [project-nam

常用 Git 命令清单 转

我每天使用 Git ,但是很多命令记不住. 一般来说,日常使用只要记住下图6个命令,就可以了.但是熟练使用,恐怕要记住60-100个命令. 下面是我整理的常用 Git 命令清单.几个专用名词的译名如下. Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库 一.新建代码库 # 在当前目录新建一个Git代码库 $ git init # 新建一个目录,将其初始化为Git代码库 $ git init [project-nam

常用 Git 命令清单【转】

转自:http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html 作者: 阮一峰 日期: 2015年12月 9日 我每天使用 Git ,但是很多命令记不住. 一般来说,日常使用只要记住下图6个命令,就可以了.但是熟练使用,恐怕要记住60-100个命令. 下面是我整理的常用 Git 命令清单.几个专用名词的译名如下. Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:

git命令汇总

一.创建命令 1.克隆一个git仓库 git clone 地址 2.建立一个新的本地git仓库 git init 二.本地修改命令 1.查看仓库当前状态 git status 2.查看文件与上一个版本的差异 git diff 3.将修改加入暂存区 git add xxx 4.提交暂存区文件 git commit –m "说明" 三.查看提交历史 1.查看所有的提交历史 git log 2.查看某一文件的提交历史 git log –p <file> 3.查看每一个命令 git

常用git命令

##GIT ###什么是gut - 是一个源代码管理工具- 在一个项目中,凡是由开发人员编写的都是源代码- 源代码有必要被管理起来吗- 让源代码可以被追溯,主要记录每次变了什么,谁主导这次变化- 人为的维护比较麻烦- GIT是Linux之父当年为了维护管理Linux源代码写的一个工具- GIT之前很多使用的svn vss tfs hs - https://guides.github.com/ ### 安装GIT - git命令行工具- 基于git命令行的一个客户端软件(提供一个界面去管理源代码)

[转]常用 Git 命令清单

作者: 阮一峰 我每天使用 Git ,但是很多命令记不住. 一般来说,日常使用只要记住下图6个命令,就可以了.但是熟练使用,恐怕要记住60-100个命令. 下面是我整理的常用 Git 命令清单.几个专用名词的译名如下. Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库 一.新建代码库 # 在当前目录新建一个Git代码库 $ git init # 新建一个目录,将其初始化为Git代码库 $ git init [pro

常用git命令整理

花了一点时间来熟悉和整理git常用命令. 推荐的git学习资料:1.搜“Git Community Book 中文版.pdf”,git社区书,内容全面且简明扼要,第一推荐2.搜“Git权威指南.pdf”,国内一高人写的,非常细致深入,各种解释说明.不过,也太厚了点,可以作为文档查询3.ProGit,在这里读“http://git-scm.com/book/zh”,写得非常好,可选前面几章作为初学.但内容不足够我先扫了3的某几章,然后看1,基本足够.偶尔查询一下2. 感觉图形化的版本变迁图非常重要

常用 Git 命令清单(摘录)

来源:阮一峰的网络日志 网址:http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html 我每天使用 Git ,但是很多命令记不住. 一般来说,日常使用只要记住下图6个命令,就可以了.但是熟练使用,恐怕要记住60-100个命令. 下面是我整理的常用 Git 命令清单.几个专用名词的译名如下. Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库 一.新建代码库

常用Git命令清单(转)

文/阮一峰 我每天使用 Git ,但是很多命令记不住. 一般来说,日常使用只要记住下图 6 个命令,就可以了.但是熟练使用,恐怕要记住 60-100 个命令. 下面是我整理的常用 Git 命令清单.几个专用名词的译名如下. Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库 一.新建代码库 # 在当前目录新建一个 Git 代码库 $ git init # 新建一个目录,将其初始化为 Git 代码库 $ git ini