git基本命令

随时补充

920 创建: 2019/9/20 08:00 更新: 2022/5/28 12:50 本文总阅读量

基本

git中文手册
易百

当前代码放入缓存区做准备:

git add ./

提交到本地并注释(wu):

git commit -m wu

推送到远程服务器:

git push origin yangzhou

切换分支:

git checkout yangzhou

切换之后更新一下分支:

git pull origin yangzhou

注意:切换分支前先提交一下

拉取远程分支(拉取所有新的)

git fetch

拉取远程制定分支

git fetch origin XXX

SPM

xcodebuild -resolvePackageDependencies

新用户初次

配置

//新用户 初次连接仓库
git config --global user.name "Firstname Lastname"
git config --global user.email "your_email@youremail.com"

新工程

  1. 创建桌面文件夹 cd ……
  2. 初始化 git init
  3. 放入缓存区 git add ./
  4. 第一次提交 git commit -m first
  5. 关联仓库 git remote add origin 远程地址
  6. 强制提交 git push -f origin master

克隆某一个

cd /Users/apple/Desktop/直播
git clone -b JinShanThird 远程仓库地址

将dev代码合并到master

## 1.切换到dev分支(如果还没有在dev分支上):
git checkout dev

## 2.拉取master分支最新的更改:
git pull origin master

## 3.解决合并冲突(如果有的话):

## 4.切换到master分支:
git checkout master

## 5.合并dev分支到master分支:
git merge dev

## 6.次解决合并冲突(如果有的话):

## 7.提交合并后的更改:
git commit -m "merge dev to master"

## 8.将更改推送到远程master分支:
git push origin master

放弃本地、拉取远程最新

git reset --hard origin/master    //origin/master替换为要拉取的远程分支名称
git add ./
git commit -m XXX
git pull

命令行执行 git branch 就进入编辑状态

解决方案:

git config --global core.pager mor

pod更新索引

更新索引、移除索引

pod repo update
pod repo update --verbose //是打印详细信息.
pod install --verbose --no-repo-update

pod repo remove trunk
rm ~/Library/Caches/CocoaPods/search_index.json

# 清楚缓存
pod cache clean --all

查询命令

grep -r --colour "tx123" /Users/yb007/Library/MobileDevice/Provisioning\ Profiles

移除

lipo -remove i386 tracking -o tracking 
lipo -remove x86_64 tracking -o tracking 

记录

git log
git log --oneline
git reflog
git reset --hard xxx

#暂存区和远程
git show xxx
git show -s

#工作区和暂存区状态
git status

#工作区和暂存区不同
git diff

#本地和远程比较
git branch -a
git diff --stat --color xxx  
确认是否已提交远程仓库

如何确定代码已经提交远程:

  1. 首先根据git status/git diff判定工作区暂存区是否同步;
  2. 利用git show -s再次判定暂存区是否提交远程;

注意:

  1. git status在主干可以确定是否是否有未提交到远程的代码;在子分支不可以区分;
  2. 不能直接使用git show -s来判断是否提交远程,因为有可能工作区的改动都没有同步到暂存区;因此需要先执行第一步.
  • 关于git status的总结:
    – 主干分支提示能够区分是否有需要提交,但未提交远程的改动
    //未提交  
    blog [master] % git status  
    On branch master  
    Your branch is ahead of 'origin/master' by 1 commit.  
    (use "git push" to publish your local commits)    
    //已提交  
    blog [master] % git status  
    On branch master  
    Your branch is up to date with 'origin/master'.  
    

    – 在子分支会提示如下信息无法区分是否有需要提交远程子分支的改动

    YBHiMo [YBLove220421] % git status  
    On branch YBLove220421
    nothing to commit, working tree clean
    
  • 关于git show -s的总结:
    未提交远程状态:(HEAD -> YBLove220421)
    YBHiMo [YBLove220421] % git show -s
    commit d3211c61865ef7437953643fe66cc86263f73dbf (HEAD -> YBLove220421)
    Author: yuan <yzyuan920@163.com>
    Date:   Fri May 27 10:40:31 2022 +0800
    
      刘海屏水印位置修复
    

    已提交远程状态:(HEAD -> YBLove220421, origin/YBLove220421)

    YBHiMo [YBLove220421] % git show -s
    commit d3211c61865ef7437953643fe66cc86263f73dbf (HEAD -> YBLove220421, origin/YBLove220421)
    Author: yuan <yzyuan920@163.com>
    Date:   Fri May 27 10:40:31 2022 +0800
    
      刘海屏水印位置修复
    

更换、检查远程链接方式

// 将https更换为ssh
git remote set-url origin git@github.com:xxx/xxx.git

// 检查
git remote -v

通信协议

拉取git仓库提示:

HTTP/2 stream 1 was not closed cleanly before end of the underlying stream.

可改为1.1

git config --global http.version HTTP/1.1