git部分命令
来源:互联网 发布:linux 调整根目录大小 编辑:程序博客网 时间:2024/05/21 07:56
git部分命令:
git config --global user.name "yourname"
git config --global user.email "email"
//以上两个命令用于指定自己的GIT用户名和邮箱地址
git reset HEAD <file> //将暂缓区的文件撤销(不会改变工作区的文件内容)
git reset --hard HEAD //将当前工作区文件回退到最后一次提交版本(工作区、暂缓区和版本库一致)常用来彻底恢复到某一个版本状态
git reset --soft HEAD //将版本库回退到最后一次提交版本(工作区、暂缓区不改变,版本库改变),常用来只是回退版本库,不想改变工作区和暂缓区内容
git reset --mixed HEAD //将版本库回退到最后一次提交版本(工作区保持不变,暂缓区和版本库改变一致),常用来撤销暂缓区到某个版本状态
git checkout -- <file> //这里有两种情况:
一种是file自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是file已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
git log --pretty==oneline //可以查看当前分支版本提交记录
git log --graph --pretty=oneline --abbrev-commit //用带参数的git log也可以看到分支的合并情况
git tag //查看当前分支tag
git branch -d feature-vulcan //删除分支
git branch -D feature-vulcan //强行删除分支
git stash //把当前工作现场“储藏”起来,等以后恢复现场后继续工作
git stash list //查看已经储存的工作现场列表
stash@{0}: WIP on dev: 6224937 add merge
需要恢复一下,有两个办法:
一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除
git stash apply stash@{0}
git stash drop stash@{0}
另一种方式是用git stash pop,恢复的同时把stash内容也删了:
git stash pop stash@{0}
//////////////////////将本地仓库和远程仓库关联起来,并将本地内容推送到远程仓库上
$ git remote add origin git@github.com:michaelliao/learngit.git
请千万注意,把上面的michaelliao替换成你自己的GitHub账户名,否则,你在本地关联的就是我的远程库,关联没有问题,但是你以后推送是推不上去的,因为你的SSH Key公钥不在我的账户列表中。添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。
下一步,就可以把本地库的所有内容推送到远程库上:
$ git push -u origin master
Counting objects: 19, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (19/19), done.
Writing objects: 100% (19/19), 13.73 KiB, done.
Total 23 (delta 6), reused 0 (delta 0)
To git@github.com:michaelliao/learngit.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.
把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
////////////////////////////////////////
git tag <标签> //默认标签是打在最新提交的commit上的
git tag v0.9 6224937 //待在某一次提交的commitId上
注意,标签不是按时间顺序列出,而是按字母排序的。可以用git show <tagname>查看标签信息:
$ git show v0.9
commit 622493706ab447b6bb37e4e2a2f276a20fed2ab4
Author: Michael Liao <askxuefeng@gmail.com>
Date: Thu Aug 22 11:22:08 2013 +0800
add merge
...
git tag -a v0.1 -m "version 0.1 released" 3628164 //还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字
因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除。
如果要推送某个标签到远程,使用命令git push origin <tagname>:
git push origin v1.0
Total 0 (delta 0), reused 0 (delta 0)
To git@github.com:michaelliao/learngit.git
* [new tag] v1.0 -> v1.0
或者,一次性推送全部尚未推送到远程的本地标签:
git push origin --tags //一次性推送全部尚未推送到远程的本地标签
Counting objects: 1, done.
Writing objects: 100% (1/1), 554 bytes, done.
Total 1 (delta 0), reused 0 (delta 0)
To git@github.com:michaelliao/learngit.git
* [new tag] v0.2 -> v0.2
* [new tag] v0.9 -> v0.9
如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:
git tag -d v0.9
Deleted tag 'v0.9' (was 6224937)
然后,从远程删除。删除命令也是push,但是格式如下:
git push origin :refs/tags/v0.9
To git@github.com:michaelliao/learngit.git
- [deleted] v0.9
//Git fetch和git pull的区别
Git中从远程的分支获取最新的版本到本地有这样2个命令:
1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge
Git fetch origin master
git log -p master..origin/master
git merge origin/master
以上命令的含义:
首先从远程的origin的master主分支下载最新的版本到origin/master分支上
然后比较本地的master分支和origin/master分支的差别
最后进行合并
上述过程其实可以用以下更清晰的方式来进行:
git fetch origin master:tmp
git diff tmp
git merge tmp
从远程获取最新的版本到本地的test分支上
之后再进行比较合并
2. git pull:相当于是从远程获取最新版本并merge到本地
git pull origin master
上述命令其实相当于git fetch 和 git merge
在实际使用中,git fetch更安全一些
因为在merge前,我们可以查看更新情况,然后再决定是否合并
结束
git config --global user.name "yourname"
git config --global user.email "email"
//以上两个命令用于指定自己的GIT用户名和邮箱地址
git reset HEAD <file> //将暂缓区的文件撤销(不会改变工作区的文件内容)
git reset --hard HEAD //将当前工作区文件回退到最后一次提交版本(工作区、暂缓区和版本库一致)常用来彻底恢复到某一个版本状态
git reset --soft HEAD //将版本库回退到最后一次提交版本(工作区、暂缓区不改变,版本库改变),常用来只是回退版本库,不想改变工作区和暂缓区内容
git reset --mixed HEAD //将版本库回退到最后一次提交版本(工作区保持不变,暂缓区和版本库改变一致),常用来撤销暂缓区到某个版本状态
git checkout -- <file> //这里有两种情况:
一种是file自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是file已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
git log --pretty==oneline //可以查看当前分支版本提交记录
git log --graph --pretty=oneline --abbrev-commit //用带参数的git log也可以看到分支的合并情况
git tag //查看当前分支tag
git branch -d feature-vulcan //删除分支
git branch -D feature-vulcan //强行删除分支
git stash //把当前工作现场“储藏”起来,等以后恢复现场后继续工作
git stash list //查看已经储存的工作现场列表
stash@{0}: WIP on dev: 6224937 add merge
需要恢复一下,有两个办法:
一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除
git stash apply stash@{0}
git stash drop stash@{0}
另一种方式是用git stash pop,恢复的同时把stash内容也删了:
git stash pop stash@{0}
//////////////////////将本地仓库和远程仓库关联起来,并将本地内容推送到远程仓库上
$ git remote add origin git@github.com:michaelliao/learngit.git
请千万注意,把上面的michaelliao替换成你自己的GitHub账户名,否则,你在本地关联的就是我的远程库,关联没有问题,但是你以后推送是推不上去的,因为你的SSH Key公钥不在我的账户列表中。添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。
下一步,就可以把本地库的所有内容推送到远程库上:
$ git push -u origin master
Counting objects: 19, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (19/19), done.
Writing objects: 100% (19/19), 13.73 KiB, done.
Total 23 (delta 6), reused 0 (delta 0)
To git@github.com:michaelliao/learngit.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.
把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
////////////////////////////////////////
git tag <标签> //默认标签是打在最新提交的commit上的
git tag v0.9 6224937 //待在某一次提交的commitId上
注意,标签不是按时间顺序列出,而是按字母排序的。可以用git show <tagname>查看标签信息:
$ git show v0.9
commit 622493706ab447b6bb37e4e2a2f276a20fed2ab4
Author: Michael Liao <askxuefeng@gmail.com>
Date: Thu Aug 22 11:22:08 2013 +0800
add merge
...
git tag -a v0.1 -m "version 0.1 released" 3628164 //还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字
因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除。
如果要推送某个标签到远程,使用命令git push origin <tagname>:
git push origin v1.0
Total 0 (delta 0), reused 0 (delta 0)
To git@github.com:michaelliao/learngit.git
* [new tag] v1.0 -> v1.0
或者,一次性推送全部尚未推送到远程的本地标签:
git push origin --tags //一次性推送全部尚未推送到远程的本地标签
Counting objects: 1, done.
Writing objects: 100% (1/1), 554 bytes, done.
Total 1 (delta 0), reused 0 (delta 0)
To git@github.com:michaelliao/learngit.git
* [new tag] v0.2 -> v0.2
* [new tag] v0.9 -> v0.9
如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:
git tag -d v0.9
Deleted tag 'v0.9' (was 6224937)
然后,从远程删除。删除命令也是push,但是格式如下:
git push origin :refs/tags/v0.9
To git@github.com:michaelliao/learngit.git
- [deleted] v0.9
//Git fetch和git pull的区别
Git中从远程的分支获取最新的版本到本地有这样2个命令:
1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge
Git fetch origin master
git log -p master..origin/master
git merge origin/master
以上命令的含义:
首先从远程的origin的master主分支下载最新的版本到origin/master分支上
然后比较本地的master分支和origin/master分支的差别
最后进行合并
上述过程其实可以用以下更清晰的方式来进行:
git fetch origin master:tmp
git diff tmp
git merge tmp
从远程获取最新的版本到本地的test分支上
之后再进行比较合并
2. git pull:相当于是从远程获取最新版本并merge到本地
git pull origin master
上述命令其实相当于git fetch 和 git merge
在实际使用中,git fetch更安全一些
因为在merge前,我们可以查看更新情况,然后再决定是否合并
结束
阅读全文
0 0
- Git部分命令
- Git部分命令
- Git部分命令介绍
- Git部分使用命令
- git部分命令
- Git部分命令
- Git入门(部分关键命令详解)
- git命令总结(部分简单的)
- windows下idea使用git命令、linux部分命令
- Git 命令
- git命令
- git 命令
- git命令
- Git命令
- git 命令
- git 命令
- Git命令
- git命令
- [资源分享]making a simple RPG in UNITY (教程压缩包分享)
- C#中的is和as操作符
- 【剑指Offer】面试题62:序列化二叉树
- 动态规划法求解硬币找零(Java)
- TP的空操作、空控制器、跨控制器调用
- git部分命令
- (Caffe,LeNet)网络训练流程(二)
- 关于获取RadioGroup里面的RadioButton的值,多行RadioGroup展示清除选中效果
- btrace
- IntelliJ IDEA部署web项目不成功问题
- Java防止SQL注入
- ABAP error:statement is not accessible
- ubunut做主机Virtualbox装win7后能够识别USB但是无法安装驱动的问题
- $.ajax()方法详解