git 常用命令

来源:互联网 发布:html5动画源码 编辑:程序博客网 时间:2024/05/22 09:55

git add [file] [path] 文件添加到暂存区

git add -u 所有已追踪文件添加到暂存区

git commit -m "msg" 提交

git commit -amend -m "msg" 提交,覆盖上次提交

git diff 比较暂存区和工作区差异

git diff HEAD 比较版本库和工作区差异

git diff --cached --stage 比较暂存区和版本库差异

git diff <commit1> <commit2> 比较两次提交的差异

git rm [file] [path] 删除文件或者路径

git reset <commit> 使用commit的内容覆盖暂存区,同时将当前分支的HEAD指针移动到commit

git reset --hard <commit> 使用commit的内容覆盖暂存区和工作区,将HEAD指针移到commit

git reset --soft <commit> 只将当前分支的HEAD移动到commit

git branch 列出所有分支,*的表示当前分支

git branch -b <branch> 创建新的分支

git checkout 汇总比较暂存区?和工作的差异

git checkout <commit> 将头指针移动到commit

git checkout -b <branch>创建并切换到branch分支

git checkout -- file 使用暂存区覆盖工作区文件

git checkout HEAD 使用版本库覆盖工作区文件

git log --oneline --graph -n --decorate 显示日志,每个提交占用一行,表示提交关系,只显示前n个,如果有tag显示tag信息

git log B..C <=> git log ^B C 显示(B,C]的提交历史

git log B...C 显示B C提交历史不同的提交

git log ^HEAD^^^ HEAD <=> git log HEAD^^^..HEAD <=> git log HEAD~3..HEAD<=> git log -3 啥意思?

git log --stat 显示变动概要,即++--

git rev-list 显示历次提交信息

git blame file 逐行显示文件,说明每行何时由谁引入

git cat-file -p <sha> 显示<sha>对象 的内容 包括父提交,tree,提交者等

git cat-file -t <sha>显示<sha>对象类型:tree-提交树(文件夹) blob-文件 commit-提交 tag-tag

git ls-files -s 显示暂存区文件,标号0位没有冲突,1为原始文件,2位当前分支文件,3为要并入的分支的文件,有冲突的文件就是当前工作区文件(解决冲突时特别有用)

git show :2:file 显示暂存区标号为2的文件,也就是当前分支相应文件

git show [HEAD] [master] [<commit>] 显示提交对应的信息

git rev-parse --git-dir 显示.git目录所在路径

git rev-parse <commit> 显示commit的完整sha

git stash保存当前进度

git stash list 列出已经保存的紧蹙

git stash pop <stash> 将stash弹出并应用

git stash apply <stash> 仅应用stash,不弹出

git reflog show [HEAD] [master] 显示引用对应的提交历史, 形式为HEAD@{1}

git reset HEAD@{1} 将提交退回到HEAD@{1}位置,可以用于恢复错误的reset操作

git tag -n<num> 显示所有tag, 只显示num行tag 说明

git tag -m "msg" tagname <commit> 为commit添加tag,名称为tagname,message为“msg”

git push origin refs/tags/* 将本地创建的tag push到远程版本库,使用git push 默认不推送tag

git tag -d tagname 删除名称为tagname的tag

git cherry-pick <commit> 拣选分支

gitk 启动git图形界面

git push origin <branch> 将branch提交到远程版本库

git push origin :branch 删除远程版本库分支(首先要删除本地branch分支,原理是使用空的分支覆盖远程分支)

git的信息都保存在.git目录下面,常用文件夹:refs/等等


git将本地文件上传到服务器:

原文:http://neckx.blog.sohu.com/278081116.html

首先,在github上建立远程版本库https://github.com/mygit/testgit.git

git init                                        //  初始化git环境  
git config --global user.name 'name'            //  配置用户名,以便于远程提交  
git config --global user.email xxx@xxx.xxx      //  配置用户邮箱,以便于远程提交  
  
git add .                                       //  添加所有文件  
git commit -m 'commit'                          //  提交到本地库  
  
git remote add nickname https://github.com/yourgit/testgit.git  //  添加远程版本库  
git push nickname master                        //  将本地master分支提交到远程分支  
  
git remote show nickname                        //  显示远程信息  




.gitignore 文件的配置:

1、配置语法:
  以斜杠“/”开头表示目录;
  以星号“*”通配多个字符;
  以问号“?”通配单个字符;
  以方括号“[]”包含单个字符的匹配列表;
  以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;
  此外,git 对于 .ignore 配置文件是按行从上到下进行规则匹配的,意味着如果前面的规则匹配的范围更大,则后面的规则将不会生效;
2、示例:
  (1)规则:fd1/*
      说明:忽略目录 fd1 下的全部内容;注意,不管是根目录下的 /fd1/ 目录,还是某个子目录 /child/fd1/ 目录,都会被忽略;
  (2)规则:/fd1/*
      说明:忽略根目录下的 /fd1/ 目录的全部内容;
  (3)规则:
/*
!.gitignore
!/fw/bin/
!/fw/sf/
说明:忽略全部内容,但是不忽略 .gitignore 文件、根目录下的 /fw/bin/ 和 /fw/sf/ 目录;



.gitignore 文件的配置:

原文:http://www.cnblogs.com/haiq/archive/2012/12/26/2833746.html

1、配置语法:
  以斜杠“/”开头表示目录;
  以星号“*”通配多个字符;
  以问号“?”通配单个字符;
  以方括号“[]”包含单个字符的匹配列表;
  以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;
  此外,git 对于 .ignore 配置文件是按行从上到下进行规则匹配的,意味着如果前面的规则匹配的范围更大,则后面的规则将不会生效;
2、示例:
  (1)规则:fd1/*
      说明:忽略目录 fd1 下的全部内容;注意,不管是根目录下的 /fd1/ 目录,还是某个子目录 /child/fd1/ 目录,都会被忽略;
  (2)规则:/fd1/*
      说明:忽略根目录下的 /fd1/ 目录的全部内容;
  (3)规则:
/*
!.gitignore
!/fw/bin/
!/fw/sf/
说明:忽略全部内容,但是不忽略 .gitignore 文件、根目录下的 /fw/bin/ 和 /fw/sf/ 目录;


0 0
原创粉丝点击