Git 命令总结

全局配置

Git 分布式版本控制系统需要记录名字和 Email 地址,使用 --global 修改全局的配置,也可以仅针对某个仓库进行配置:

~ ➤ git config --global user.email "dw.jerry.c@gmail.com"
~ ➤ git config --global user.name "JerryBaby"

创建版本库

~ ➤ git init jerry
Initialized empty Git repository in /Users/jerry/git/jerry/.git/
jerry ➤ touch readme.md
jerry ➤ echo "test" > readme.md
jerry ➤ git add readme.md
jerry ➤ git commit -m "add readme.md"
[master (root-commit) 6c71199] add readme.md
 1 file changed, 1 insertion(+)
 create mode 100644 readme.md

查看提交日志

jerry ➤ echo "test2" >> readme.md
jerry ➤ git add .
jerry ➤ git commit -m "add test2"
[master 5380bc0] add test2
 1 file changed, 1 insertion(+)
 
jerry ➤ git log
commit 5380bc0f617b744cf331d0a8d65f96492b7b4573
Author: JerryBaby <dw.jerry.c@gmail.com>
Date:   Tue Jun 20 21:05:59 2017 +0800

    add test2

commit 6c71199d2399cdb37591e216efa7777e08c450e6
Author: JerryBaby <dw.jerry.c@gmail.com>
Date:   Tue Jun 20 21:04:06 2017 +0800

    add readme.md

回退版本

在 Git 中,用 HEAD 表示当前版本,上一个版本就是 HEAD^,上上个版本就是 HEAD^^,以此类推

jerry ➤ git reset --hard HEAD^
HEAD is now at 6c71199 add readme.md

git reset 命令设置当前的 HEAD 到指定的状态。--hard 参数

如果还想恢复到最新的版本,只要制定版本号:

jerry ➤ git reset --hard 5380bc0f617b744cf331d0a8d65f96492b7b4573
HEAD is now at 5380bc0 add test2

工作区和暂存区

工作区(working directory)

工作区就是在电脑里能看到的目录

版本库(repository)

工作区隐藏目录 .git 是 Git 的版本库。版本库比较重要的就是称为 stage(或者叫 index)的暂存区,还有 Git 自动创建的第一个分支 master,以及指向当前分支的一个指针 HEAD

  • git add 命令把修改内容添加到暂存区
  • git commit 命令把暂存区的内容提交到当前分支

撤销修改

  • 当修改了工作区某个文件的内容,想直接丢弃工作区的修改,执行 git checkout -- filename
  • 当修改了工作区某个文件的内容,并且添加到了暂存区,想丢弃修改,执行 git reset HEAD filename; git checkout -- filename
  • 当修改了工作区某个文件的内容,并且提交到了版本库,想丢弃修改,使用版本回退

删除文件

使用 rm 命令删除文件之后:

  1. 要从版本库中删除该文件,执行 git rm; git commit
  2. 删除错误,要恢复文件,执行 git checkout -- filename

添加远程仓库

关联一个远程仓库,使用命令 git remote add origin git@server-name:path/repo-name.git

关联后,使用命令 git push -u origin master 第一次推送 master 分支的所有内容

此后,每次本地提交后,只要有必要,就可以使用命令 git push origin master 推送最新修改

分支管理

创建并切换分支:

jerry ➤ git checkout -b dev
Switched to a new branch 'dev'
相当于
jerry ➤ git branch dev
jerry ➤ git checkout dev
Switched to a new branch 'dev'
jerry ➤ echo "branch dev" >> readme.md
jerry ➤ git add .
jerry ➤ git commit -m "add branch dev"
[dev 007f57b] add branch dev
 1 file changed, 1 insertion(+)
jerry ➤ git checkout master
Switched to branch 'master'
jerry ➤ git branch
  dev
* master
jerry ➤ git merge dev
Updating 5380bc0..007f57b
Fast-forward
 readme.md | 1 +
 1 file changed, 1 insertion(+)

git merge 命令用于合并指定分支到当前分支

jerry ➤ git branch -d dev
Deleted branch dev (was 007f57b).
jerry ➤ git branch
* master

暂存修改

当前版本有工作没有修改完成时,使用 git stash 保留工作现场,修改并 merge 新分支后,再用 git stash pop 恢复

标签管理

命令 git tag <name> 用于新建一个标签,默认为 HEAD,也可以指定一个 commit id

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

git tag -s <tagname> -m "..." 可以用 PGP 签名标签

命令 git tag 可以查看所有标签

命令 git pus origin <tagname> 可以推送一个本地标签

命令 git push origin --tags 可以推送全部未推送过的本地标签

命令 git tag -d <tagname> 可以删除一个本地标签

命令 git push origin :refs/tags/<tagname> 可以删除一个远程标签

参考:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/

转载于:https://my.oschina.net/JerryBaby/blog/994066

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值