【git】git命令手册--编辑中

git checkout

git checkout迁出一个分支的特定版本。默认是迁出分支的HEAD版本


一此用法示例:

$ git checkout  master            #//取出master版本的head。

$ git checkout  tag_name         #//在当前分支上 取出 tag_name 的版本

$ git checkout  master file_name  #//放弃当前对文件file_name的修改

$ git checkout  commit_id  file_name  #//取commit_id提交版本的file_name

$ git checkout -b dev/1.5.4 origin/dev/1.5.4

# 从远程dev/1.5.4分支取得到本地分支/dev/1.5.4

$ git checkout -- hello.rb

#这条命令把hello.rb从HEAD中签出.

$ git checkout .

#这条命令把 当前目录所有修改的文件 从HEAD中签出并且把它恢复成未修改时的样子.

#注意:在使用 git checkout 时,如果其对应的文件被修改过,那么该修改会被覆盖掉。

https://www.yiibai.com/git/git_checkout.html 


git pull 

git pull 将远程主机的最新内容拉下来到本地工作目录后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。

git pull 的过程可以理解为:

git fetch origin master       //从远程主机的master分支拉取最新内容 

git merge FETCH_HEAD    //将拉取下来的最新内容合并到当前所在的分支中

即将远程主机的某个分支的更新取回,并与本地指定的分支合并,完整格式可表示为:

$ git pull  <远程主机名>  <远程分支名>:<本地分支名>

如果远程分支是与当前分支合并,则冒号后面的部分可以省略:

$ git pull origin next

//查询当前远程的版本

$ git remote -v

//直接拉取并合并最新代码

$ git pull origin master [示例1:拉取远端origin/master分支并合并到当前分支]

$ git pull origin dev [示例2:拉取远端origin/dev分支并合并到当前分支]

原文:https://blog.csdn.net/hanchao5272/article/details/79162130 


git fetch

git fetch将远程主机的最新内容拉到本地仓,用户在检查了以后决定是否合并到本地工作本目录

$ git fetch  <远程主机名>  //这个命令将某个远程主机的更新全部取回本地

$ git fetch  <远程主机名>  <分支名>取回特定分支的更新,可以指定分支名

$ git fetch  origin  master  最常见的命令如取回origin 主机的master 分支

取回更新后,会返回一个FETCH_HEAD ,指的是某个branch在服务器上的最新状态,我们可以在本地通过它查看刚取回的更新信息:

$ git log -p FETCH_HEAD

git fetch后的合并:


git reset


git reset HEAD
什么都不会发生, 指针指向当前位置

git reset --mixed HEAD~1
HEAD~1 指上一个提交, HEAD~2 指上上一个提交
让暂存区和历史区与指定的提交保持一致,可以理解为撤销 git add

git reset --soft HEAD~1
让历史区与指定的提交保持一致,可以理解为撤销 git commit

git reset --hard HEAD~1
让工作区、暂存区和历史区都与指定的提交保持一致,可以理解为撤销所有改动


链接:https://www.jianshu.com/p/e84283d2f0f1

reset命令有3种方式:

1:git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息

2:git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可

3:git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容

#回退所有内容到上一个版本

git reset HEAD^

#回退a.py这个文件的版本到上一个版本

git reset HEAD^ a.py

#向前回退到第3个版本

git reset –soft HEAD~3

#将本地的状态回退到和远程的一样

git reset –hard origin/master

#回退到某个版本

git reset 057d

#回退到上一次提交的状态,按照某一次的commit完全反向的进行一次commit

git revert HEAD

如果我们某次修改了某些内容,并且已经commit到本地仓库,而且已经push到远程仓库了

这种情况下,我们想把本地和远程仓库都回退到某个版本,该怎么做呢?

前面讲到的git reset只是在本地仓库中回退版本,而远程仓库的版本不会变化

这样,即时本地reset了,但如果再git pull,那么,远程仓库的内容又会和本地之前版本的内容进行merge

这并不是我们想要的东西,这时可以有2种办法来解决这个问题:

1:直接在远程server的仓库目录下,执行git reset –soft 10efa来回退。注意:在远程不能使用mixed或hard参数

2:在本地直接把远程的master分支给删除,然后再把reset后的分支内容给push上去,如下:

#新建old_master分支做备份

git branch old_master

#push到远程

git push origin old_master:old_master

#本地仓库回退到某个版本

git reset –hard bae168

#删除远程的master分支

git push origin :master

#重新创建master分支

git push origin master

在删除远程master分支时,可能会有问题,见下:

$ git push origin :master

error: Bydefault, deleting the current branch is denied, because the next

error:'git clone' won't result in any file checked out, causing confusion.

error:

error: You can set'receive.denyDeleteCurrent'configuration variable to

error:'warn' or 'ignore'in the remote repository to allow deleting the

error: current branch, with or without a warning message.

error:

error: To squelchthis message, you can set it to 'refuse'.

error: refusing to delete the current branch: refs/heads/master

To git@xx.sohu.com:gitosis_test![remote rejected] master (deletion of the current branch prohibited)

error: failed to push some refs to'git@xx.sohu.com:gitosis_test'

这时需要在远程仓库目录下,设置git的receive.denyDeleteCurrent参数

git receive.denyDeleteCurrent warn

然后,就可以删除远程的master分支了

虽然说有以上2种方法可以回退远程分支的版本,但这2种方式,都挺危险的,需要谨慎操作……

相关资源:Git恢复之前版本的两种方法reset、revert(图文详解)_gitrevert后...

原文链接:https://blog.csdn.net/weixin_39569753/article/details/111554567
————————————————
版权声明:本文为CSDN博主「bandaoyu」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/bandaoyu/article/details/94420488

Git指令的Shell脚本,能够快速便捷地管理Git库,包括添加修改、提交修改、显示库状态、推送到远程库、从远程库更新到本地、版本恢复等操作。 使用方法: 1. 在Linux系统,将本文件放在Git库目录下,利用Shell运行本文件; 2.在windows系统,需下载安装与操作系统相对应的Git软件,并将本文件放在Git库目录下,双击即可运行。 运行示例: Please choose the first letter of options. [Add|Commit|Diff|Fetch|Exit|Help|Log|Push|User|Reset|Status]? h A: Add all changes to repository. C: Commit all changes to repository. D: Show differences between current version with HEAD->. E: Exit shell script. F: Fetch origin/master and merge. L: Show latest two-weeks logs of repository. P: Push commissions to origin/master. U: User command mode(Press ‘Enter’ to exit). R: Reset current version according version_id. S: Show status of repository. Please choose the first letter of options. [Add|Commit|Diff|Fetch|Exit|Help|Log|Push|User|Reset|Status]? s On branch master Your branch is up-to-date with 'origin/master'. Changes not staged for commit: (use "git add ..." to update what will be committed) (use "git checkout -- ..." to discard changes in working directory) modified: Git.sh modified: PyNote/PyNote_2.md no changes added to commit (use "git add" and/or "git commit -a") Please choose the first letter of options. [Add|Commit|Diff|Fetch|Exit|Help|Log|Push|User|Reset|Status]? a On branch master Your branch is up-to-date with 'origin/master'. Changes to be committed: (use "git reset HEAD ..." to unstage) modified: Git.sh modified: PyNote/PyNote_2.md
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值