Git经常使用命令

Git经常使用命令

  • 新建仓库并提交git

    # 初始化本地仓库
    git init 
    # 关联远程仓库
    git remote add origin git@vesync.com:cloudTeam/levi
    # 建立分支,切换分支
    git checkout -b feature-test
    # 添加文件, cd到要上传的文件夹下, add . 是上传全部文件
    # git add命令将要体检的文件的信息添加到索引库中,以准备为下一
    # 次提交分段的内容
    git add .
    # git commit命令用于将更改的记录提交到存储库,将索引的当前内
    # 容与描述信息一块儿存储在新的提交中
    git commit -m "commit"
    # git push命令用于将本地分支的更新推送到远程分支
    git push origin feature-test

  • 删除文件shell

    # 删除远程分支文件,不删除本地文件
    git rm --cached thisfile
    git commit -m "delete this file"
    git push origin feature-test
    # 删除远程分支文件夹,不删除本地
    git rm -r --cached thisfolder
    git commit -m "delete this folder"
    git push origin feature-test
  • git fetch服务器

    # git fetch命令用于从另外一个存储库下载对象和引用
    # 更新全部分支
    git fetch
    # 更新特定分支
    git fetch feature-test
    # 从远程命名空间复制全部分支,并将其存储到本地的
    # .git\refs\remotes\origin命名空间中
    git fetch origin
  • git pullide

    # git pull命令的做用是:取回远程主机某个分支的更新,再与指定的
    # 本地分支合并,能够理解为 git fetch 后跟 
    # git merge FETCH_HEAD两个操做的集合
    # 更准确的说是:git pull使用给定的参数运行git fetch,并调用
    # git merge将检索到的分支头合并到当前的分支中
    
    # 获取远程分支feature—test,与本地master分支合并
    git pull origin feature-test:master
    # 获取远程分支与当前分支合并
    git pull origin feature-test
  • Git修改分支名称gitlab

    • 本地分支重命名(还未推送到远端)
    git branch -m oldName newName
    • 远程分支分支重命名
    1. 重命名远程分支对应的本地分支
    git branch -m oldName newName
    1. 删除远程分支
    git push --delete origin oldName
    1. 上传新命名的本地分支
    git push origin newName
    1. 把修改后的本地分支与远程分支关联
    git branch --set-upstream-to origin/newName
  • Git如何clone非master分支的代码fetch

    # 先clone master分支
    git clone git@gitlab.xxx.com:xxxxx.git
    # 进入clone的文件夹,会看到当前的分支为master
    # 查看全部分支
    git branch -a
    # 切换到须要clone的分支
    git checkout origin/dev-xxx
  • 误删除了远程分支this

    # 想办法找到最新一次的commit SHA值
    # SHA值能够经过gitLab上的提交记录查看,也能够使用git reflog命令
    git branch branchName SHA
    # 而后再将此分支推送到远端
    git push origin branchName
  • git pull出现冲突code

    # 保留刚才本地修改的代码,并把git服务器上的代码pull到本地
    git stash
    git pull origin master
    git stash pop
    # 彻底覆盖本地的代码,只保留服务器端代码,则直接回退到上一个版本
    git reset --hard
    git pull origin master
  • git pull后恢复到原来版本对象

    # git pull后发现不是想要的版本,须要回退
    # 查看本地分支的变更记录
    git reflog loacal_branch
    # 利用commit id恢复到以前的位置
    git reset --hard <COMMIT_ID>
  • 报错:Updates were rejected because the tip of your current branch is behind索引

    • 强制push,会使远程修改丢失
    git push -u origin master -f
    • 不想merge远程与本地,新建分支
    git branch newBranch
    git push -u origin newBranch
  • 撤销commit

    #仅撤回commit操做,代码依然保留
    #HEAD^指回退上一个版本
    git reset --soft HEAD^
    #若提交了2次commit,能够使用HEAD~2
    #参数区别
    #不删除工做空间改动代码,撤销commit,而且撤销git add . 操做
    --mixed
    #不删除工做空间改动代码,撤销commit,不撤销git add . 
    --soft
    #删除工做空间改动代码,撤销commit,撤销git add . 
    --hard
  • 强制覆盖本地代码

    git reset --hard origin/dev
    git pull origin/dev
相关文章
相关标签/搜索