Git总结

作者: 圆土豆 | 来源:发表于2017-05-25 11:59 被阅读0次

Git

在上家公司时使用git管理代码,当时使用的稀里糊涂,有些地方不是太明白。现在这家公司把代码移到git上管理了,有必要很明白的弄清楚一些命令的含义。现在把资料整理出来,供以后忘记时使用。有需要的人也可以看看。欢迎大家提意见。

1、新建代码库

在当前目录新建一个Git代码库

  • git init

新建一个目录,将其初始化为Git代码库

  • git init [project-name]

下载一个项目和它整个代码历史

  • git clone [url]

clone下来的repo以url最后一个斜线后面的名称命名文件夹,也可以指定名字

  • git clone [url] [repo-name]

2、配置Git

显示当前的Git配置

  • git config --list

设置提交代码时的用户信息

  • git config [--global] user.name "[name]"
  • git config [--global] user.email "[email address]"

3、分支

本地分支

查看本地分支列表

  • git branch

删除本地分支

删除本地merge了的分支

  • git branch -d [branch-name]

删除分支(不管有没有merge)

  • git branch -D [branch-name]

重命名本地分支

  • git branch -m [old-name] [new-name]

远程分支

查看远程分支

  • git branch -r

查看所有分支

  • git branch -va

删除远程分支

  • git push --delete origin [branch-name]

或者

  • git push origin :[branch-name]

或者

  • git branch -dr [remote-branch]

新建一个分支,但依然停留在当前分支

  • git branch [branch-name]

切换到指定分支,并更新工作区

  • git checkout [branch-name]

新建一个分支,并切换到该分支

  • git checkout -b [branch-name]

新建一个分支,与指定的远程分支建立追踪关系

  • git branch -- track [local-branch] [remote-branch]

建立追踪关系,在现有分支与制定远程分支之间

  • git branch --set-upstream [local-branch] [remote-branch]

4、远程同步

下载远程仓库的所有变动

  • git fetch [remote-repo]

显示所有远程仓库

  • git remote -v

显示某个远程仓库的信息

  • git remote show [remote-repo]

增加一个新的远程仓库,并命名

  • git remote add [shortname] [url]

取回远程主机某个分支的更新,再与本地指定的分支合并,如果远程分支与当前分支合并,则冒号后面的部分可以省略

  • git pull [remote-repo] [remote-branch-name]:[local-branch-name]

上传本地指定分支的更新到远程仓库

  • git push [remote-repo] [local-branch]:[remote-branch]

强行推送当前分支到远程仓库,即使有冲突

  • git push [remote-repo] --force

推送所有分支到远程仓库

  • git push [remote-repo] --all

每个git branch可以有个对应的upstream。假设你有两个upstream,分别叫server1和server2,本地master branch的upstream是server1上的master,那么当你不带参数直接输入git pull或者git push时,默认是对server1进行pull/push。如果你成功运行"git push -u server2 master",那么除了本地branch会被push到server2之外,还会把server2设置成upstream。

  • git push -u [remote-repo] [branch]

5、本地提交

提交暂存区到仓库区

  • git commit -m "message"

提交暂存区的指定文件到�仓库区

  • git commit [file1] [file2] ... -m "message"

提交工作区自上次commit之后的变化,直接到仓库区

  • git commit -a

提交时显示所有diff信息

  • git commit -v

使用一次新的commit,代替上一次提交;如果代码没有任何新的变化,则用来改写上一次的提交信息,只产生一次提交

  • git commit --amend -m "message"

重做上一次commit,并包括指定文件的新变化

  • git commit --amend [file1] [file2] ...

讲其他分支的指定commit应用在当前分支上

  • git cherry-pick [commit id]

6、查看信息

显示有变更的文件

  • git status

显示当前分支的版本历史

  • git log

显示指定文件的每一次diff

  • git log -p [file]

显示暂存区和工作区的差异

  • git diff

显示暂存区和上一个commit之间的差异

  • git diff --cached [file]

显示工作区与当前分支最新commit之间的差异

  • git diff HEAD

显示两次提交之间的差异

  • git diff [first-branch]...[second-branch]

显示某次提交的元数据和内容变化

  • git show [commit-id]

显示某次提交时,某个文件的内容

  • git show [commit]:[filename]

撤销

恢复暂存区中指定文件的内容到工作区中

  • git checkout [file]

恢复某个commit的指定文件内容到暂存区和工作区

  • git checkout [commit] [file]

撤销没有add的文件的修改(危险,本地改动会被撤销)
$ git checkout -- [file]

恢复暂存区的所有文件内容到工作区

  • git checkout .

重置暂存区的指定文件(撤销add过的指定文件到工作区)

  • git reset [file]

重置暂存区与工作区,与上一次commit保持一致(丢掉add的文件)

  • --soft - 缓存区和工作目录都不会被改变,回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
  • --mixed - 默认选项。缓存区和你指定的提交同步,但工作目录不受影响,此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息
  • --hard - 缓存区和工作目录都同步到你指定的任务,彻底回退到某个版本,本地的源码也会变为上一个版本的内容

例如 git reset --hard

重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变

如果要将撤销推送到远程仓库,再执行git push [] [] --force

  • git reset [commit]

新建一个commit,用来撤销指定commit,后者的所有变化都将被前者抵消,并且应用到当前分支

  • git revert [commit]

暂时将未提交的变化添加到stash

  • git stash

恢复stash中第一条的改动到工作区,并将其在stash list中移除

  • git stash pop

恢复stash中指定id的改动到工作区(并不在stash中删除)

  • git stash apply [stash@{id}]

删除stash

  • git stash drop [stash@{id}]

相关文章

  • 工具集#01 Git 代码版本控制

    目录:Git 入门Git 进阶Git 高阶总结 1. Git 入门 Git global setup Create...

  • 工具集#01 Git 代码版本控制

    目录:Git 入门Git 进阶Git 高阶总结 1. Git 入门 Git global setup Create...

  • Git与Github的使用总结 - day 03

    git常用命令总结 git配置(config): git仓库(repository): git分支(branch)...

  • git使用总结

    git使用总结 git --version //查看所安装的git的版本 git config --global ...

  • git 命令

    Git常用命令总结Git常用命令总结 git init 在本地新建一个repo,进入一个项目目录,执行git ...

  • 2018-04-18

    git学习小结 关于git init,git add,git commit 用法总结 1.首先配置git 全局配置...

  • GitHub创建远程仓库及连接

    总结:使用的git命令 git init git remote add origin (远程仓库地址) git r...

  • git总结

    git总结 标签(空格分隔): git 本文是对廖雪峰的git教程的总结 [TOC] 创建版本库 创建版本库:gi...

  • Git 常用指令

    Git常用命令总结 Git常用命令总结 git init 在本地新建一个repo,进入一个项目目录,执行git i...

  • Git Summary Template

    Git Summary Template ​ git 提交模板,个人总结 ( ) : <空行> ...

网友评论

      本文标题:Git总结

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