git常用命令

 

1) 远程仓库相关命令

 

检出仓库:$ git clone git://github.com/jQuery/jquery.git

查看远程仓库:$ git remote -v  或者$git remote show [remotename]

添加远程仓库:$ git remote add [name] [url]

删除远程仓库:$ git remote rm [name]

修改远程仓库:$ git remote 远程仓库名 set-url [url]

拉取远程仓库:$ git pull [remoteName] [localBranchName]

推送远程仓库:$ git push [remoteName] [localBranchName]

 

*如果想把本地的某个分支test提交到远程仓库,并作为远程仓库的master分支,或者作为另外一个名叫test的分支,如下:

$git push origin test:master         // 提交本地test分支作为远程的master分支

$git push origin test:test              // 提交本地test分支作为远程的test分支

 

2)分支(branch)操作相关命令

查看本地分支:$ git branch

查看远程分支:$ git branch -r

创建本地分支:$ git branch [name] ----注意新分支创建后不会自动切换为当前分支

切换分支:$ git checkout [name]

创建新分支并立即切换到新分支:$ git checkout -b [name]

删除分支:$ git branch -d [name] ---- -d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项

合并分支:$ git merge [name] ----将名称为[name]的分支与当前分支合并

删除远程分支:$git branch -dr [name] 

 

3)版本(tag)操作相关命令

查看版本:$ git tag

创建版本:$ git tag [name]

删除版本:$ git tag -d [name]

查看远程版本:$ git tag -r

创建远程版本(本地版本push到远程):$ git push origin [name]

删除远程版本:$ git push origin :refs/tags/[name]

合并远程仓库的tag到本地:$ git pull origin --tags

上传本地tag到远程仓库:$ git push origin --tags

创建带注释的tag:$ git tag -a [name] -m 'yourMessage'

 

4)恢复和比较

$git reflog 查看提交的版本信息

$git reset 版本名 将暂存区和本地仓库恢复到指定版本

$git reset --hard 版本名 将暂存区、本地仓库、工作区恢复到指定版本

$git reset --hard HEAD~3 恢复到最后第三次的版本

$git reset --sorf 版本名 将缓冲区恢复为哪个版本,工作区不变

$git checkout * 恢复暂存区所有文件到工作区

$git checkout 文件名  恢复暂存区指定文件到工作区

$git diff   比较工作区与暂存区的区别

$git diff --cached 比较暂存区与当前分支仓库区别

$git diff 远程主机名(仓库)/远程分支名  本地分支  比较远程分支和本地分支的区别

=====================

Git 常用命令

git config --list 看所有用户

git常用命令:
git init  #创建一个git文件,用作在本地创建git仓库
git add 文件    #添加指定文件到暂存区(跟踪文件)
git rm --cached -r 文件   #删除缓冲区文件(即删除追踪)
git rm -rf文件     #删除暂存区里的文件和工作区,多个用空格分开
git ls-files      查看暂存区里的文件
git mv 旧文件名 新文件名   #将工作区的文件名改了添加到暂存区
git commit -m "message"  #将暂存区里的内容提交到仓库(当前分支版本)
git checkout 文件名      #将暂存区的某个文件恢复到工作区
git checkout *           #恢复暂存去所有文件到工作区
git reset --hard 分支(即分支仓库) #恢复某个分支版本库到暂存区和工作区
git remote add 远程主机名 地址 #添加远程仓库git remote add origin https://www.github.com/LeiLeee/family
git remote     #查看远程仓库名
git remote -v   #查看远程仓库和详细信息
git branch -r   #查看远程分支
git branch -a   #查看所有分支
git checkout -b 分支名  #创建分支且切换到该分支
git checkout tag名字 #切换到tag版本
git branch 分支名   #创建分支
git checkout 分支名  #切换到该分支
git branch -d 分支名  #删除本地分支
git branch -dr 分支名 #删除远程分支
git status     #查看当前分支修改的文件且还未提交
git diff       #查看工作区和暂存区有什么不同
git diff --cached   #查看暂存区与当前分支仓库(当前分支仓库)有什么不同
git diff 远程主机名 分支  #查看当前分支仓库与远程仓库有什么不同

git fetch 远程主机 分支   #取回远程仓库的分支(即分支版本库)

 

理解 fetch 的关键, 是理解 FETCH_HEAD,FETCH_HEAD指的是: 某个branch在服务器上的最新状态’。这个列表保存在 .Git/FETCH_HEAD 文件中, 其中每一行对应于远程服务器的一个分支。
当前分支指向的FETCH_HEAD, 就是这个文件第一行对应的那个分支.
一般来说, 存在两种情况:
  • 如果没有显式的指定远程分支, 则远程分支的master将作为默认的FETCH_HEAD.
  • 如果指定了远程分支, 就将这个远程分支作为FETCH_HEAD.
git fetch origin branch1

 

这个操作是git pull origin branch1的第一步, 而对应的pull操作,并不会在本地创建新的branch。设定当前分支的 FETCH_HEAD' 为远程服务器的branch1分支`。 
 
这个命令可以用来测试远程主机的远程分支branch1是否存在, 如果存在, 返回0, 如果不存在, 返回128, 抛出一个异常.
git fetch origin branch1:branch2

首先执行上面的fetch操作,下载远程branch1分支在本地创建branch2(但不会切换到该分支),如果本地不存在branch2分支, 则会自动创建一个新的branch2分支,如果本地存在branch2分支, 并且是`fast forward', 则自动合并两个分支, 否则, 会阻止以上操作.

fetch更新本地仓库两种方式:

复制代码
//方法一
$ git fetch origin master //从远程的origin仓库的master分支下载代码到本地的origin master

$ git log -p master.. origin/master//比较本地的仓库和远程参考的区别

$ git merge origin/master//把远程下载下来的代码合并到本地仓库,远程的和本地的合并

//方法二
$ git fetch origin master:temp //从远程的origin仓库的master分支下载到本地并新建一个分支temp

$ git diff temp//比较master分支和temp分支的不同

$ git merge temp//合并temp分支到master分支

$ git branch -d temp//删除temp

git merge 分支名         #合并该分支到本分支  (一般加上 --allow-unrelated-histories)
git pull 远程主机名 远程分支:本地分支 #取回远程仓库的分支(即分支版本库)并合并到本分支
git push 远程主机名 本地分支 :远程分支     #将本地分支仓库推送到远程仓库的固
定分支
git log    #查看所有提交的版本信息
git reflog #查看所有操作记录和对应版本
git reset 版本名  #将暂存区和本地仓库恢复到该版本时的情况
git reset --hard 版本名   #将暂存区和本地仓库和工作区恢复到该版本时的情况
git reset --hard HEAD~3   #恢复到最后第三次提交时的版本 HEAD表示当前版本、
HEAD^最后一次提交的版本
git clone 版本库网址 本地目录名   #如 git clone
https://github.com/jquery/jquery.git 从远程仓库克隆指定版本到本地

git push 被拒绝的情况

1.因为当前分支的最新提交落后于其对应的远程分支,所以我们先从远程库fetch到更新再和本地库合并,之后就可以git push操作了。
![rejected]   non-fast-forward

2.在网站上改了README.md文件,添加一些项目的说明,然后用git push时,需要没有将远程仓库合并在本地(更新服务器变化)然后在push
![rejected]   fetch-first

git log 看你commit的日志

git stash push 将文件给push到一个临时空间中

git stash pop 将文件从临时空间pop下来

---------------------------------------------------------

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值