【git】git操作命令和相关脚本

这篇博客详细介绍了Git的常用命令,包括git clone、git checkout、git diff、git add等,以及如何处理错误和使用相关脚本。强调了git pull --rebase与git pull的区别,解释了git reset的不同模式,还讲解了git stash的使用和git cherry-pick的功能。此外,还提到了git log和git tag的用法,以及如何处理Git的报错。
摘要由CSDN通过智能技术生成

目录

git clone

git checkout

git diff

git add

git pull --rebase

git pull 

git fetch

git reset

git stash 

git clean 

git cherry-pick

git merge     

git log

git tag

git blame

报错处理

相关脚本

git clone

git clone [远程仓库地址]            #clone下来保持原文件夹名

git clone [远程仓库地址]  [想要重命名的文件夹名称]  #clone重命名的文件夹名称

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 diff

git diff 忽略文件权限被修改的文件

不同场景的解决方法
让当前git库忽略掉文件权限检查
git config core.fileMode false
1
针对repo库可用如下命令解决
repo forall -c git config core.fileMode false
1
当前user全局设置忽略文件权限检查,可查看文件~/.gitconfig
git config --global core.fileMode false // 所有版本库
$ cat ~/.gitconfig 
[user]
    name = huping
    email = huping@soundai.com
[http]
    postBuffer = 524288000
[core]
    compression = -1
    fileMode = false
[color]
    ui = auto
原文链接:https://blog.csdn.net/hp370440182/article/details/89278340

git add

git add -u <==> git add –update
提交所有被删除和修改的文件到数据暂存区

git add .
提交所有修改的和新建的数据暂存区

git add -A <==>git add –all
提交所有被删除、被替换、被修改和新增的文件到数据暂存区

  • git add -A 提交所有变化
  • git add -u 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)
  • git add . 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件

git版本不同会有所区别:


链接:https://www.jianshu.com/p/65fb3fa62057


git pull --rebase

git pull                 =  git fetch + git merge  FETCH_HEAD 
git pull --rebase =  git fetch + git rebase FETCH_HEAD 

差距就在git fetch之后的操作:

现在来看看git merge和git rebase的区别。

rebase的好处是避免了菱形的产生,保持提交曲线为直线:

在master执行git merge test,然后会得到如下结果:

       D--------E
      /          \
 A---B---C---F----G---   test, master
在master执行git rebase test,然后得到如下结果:

A---B---D---E---C‘---F‘---   test, master
详细说明:https://blog.csdn.net/bandaoyu/article/details/121507096

git pull 

一般更推荐git pull --rebase,详情见git pull --rebase

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 

<<<<<<< HEAD

本地代码

=====&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值