• Git常用命令及场景


    Git命令推送到远程分支

    1、登录GitHub创建一个远程仓库。

      https://github.com

                  

    2、git init

      本地创建一个目录,并初始化一个git仓库。

    3、git add

      添加文件到当前目录下,然后执行git add ,将“修改”从当前工作区存放到暂存区。

    4、git commit -m "注释语句"

      将暂存区中存放的文件提交到本地git仓库。

    5、git remote add origin https://远程仓库地址

      将本地代码库的当前分支与远程的代码库分支相关联。

    6、git pull origin master

      远程库分支更新代码到本地。

    7、git push -u origin master(远程分支)

      将本地代码库的当前分支推送到远程的代码库。

    如果如下报错

    failed to push some refs to 'https://github.com/kosamino/demo.git'
    hint: Updates were rejected because the remote contains work that you do
    hint: not have locally. This is usually caused by another repository pushing
    hint: to the same ref. You may want to first integrate the remote changes
    hint: (e.g., 'git pull ...') before pushing again.
    hint: See the 'Note about fast-forwards' in 'git push --help' for details.

    解决方法有

    1.使用强制push的方法:(首次上传代码可用这个方法)

      $ git push -u origin master -f

      这样会使远程修改丢失,一般是不可取的,尤其是多人协作开发的时候。

    2.push前先将远程repository修改pull下来

      $ git pull origin master

      $ git push -u origin master

    3.若不想merge远程和本地修改,可以先创建新的分支:

      $ git branch [name]

      然后push

      $ git push -u origin [name]

    删除远程仓库(比如GitHub)的目录或文件 

    1、拉取远程的Repo到本地(如果已经在本地,可以略过) 

      $ git clone xxxxxx
    2、在本地仓库删除文件
      $ git rm 我的文件
    3、在本地仓库删除文件夹
      $ git rm -r 我的文件夹/
      此处-r表示递归所有子目录,如果你要删除的,是空的文件夹,此处可以不用带上-r。
    4、提交代码
      $ git commit -m"我的修改"
    5、推送到远程仓库 
      $ git push origin 远程分支

    git rm -h(rm命令详解)

      用法:git rm [<选项>] [--] <文件>...

      -n, --dry-run 演习

      -q, --quiet 不列出删除的文件

      --cached 只从索引区删除

      -f, --force 忽略文件更新状态检查

      -r 允许递归删除

      --ignore-unmatch 即使没有匹配,也以零状态退出

     删除远程分支和tag

    1、在Git v1.7.0 之后,可以使用这种语法删除远程分支:
      $ git push origin --delete <branchName>
    2、删除远程tag:
      $ git push origin --delete tag <tagname>
    3、删除远程分支,推送一个空分支到远程分支,其实就相当于删除远程分支:
      $ git push origin :<branchName>
    4、删除远程tag,推送一个空tag到远程tag:
      $ git tag -d <tagname>
      $ git push origin :refs/tags/<tagname>

    删除不存在对应远程分支的本地分支

    1、创建了本地分支b1并pull到远程分支 origin/b1;
    2、其他人在本地使用fetch或pull创建了本地的b1分支;
    3、删除了 origin/b1 远程分支;
    4、其他人再次执行fetch或者pull并不会删除这个他们本地的 b1 分支,运行 git branch -a 也不能看出这个branch被删除了,如何处理?
      使用下面的代码查看b1的状态:

    $ git remote show origin
    * remote origin
    Fetch URL: git@github.com:xxx/xxx.git
    Push URL: git@github.com:xxx/xxx.git
    HEAD branch: master
    Remote branches:
    master tracked
    refs/remotes/origin/b1 stale (use 'git remote prune' to remove)
    Local branch configured for 'git pull':
    master merges with remote master
    Local ref configured for 'git push':
    master pushes to master (up to date)

      这时候能够看到b1是stale的,使用 git remote prune origin 可以将其从本地版本库中去除。

      更简单的方法是使用这个命令,它在fetch之后删除掉没有与远程分支对应的本地分支:

      $ git fetch -p

    重命名远程分支

      在git中重命名远程分支,其实就是先删除远程分支,然后重命名本地分支,再重新提交一个远程分支。

      例如下面的例子中,我需要把 devel 分支重命名为 develop 分支:

    $ git branch -av
    * devel 752bb84 Merge pull request #158 from Gwill/devel
    master 53b27b8 Merge pull request #138 from tdlrobin/master
    zrong 2ae98d8 modify CCFileUtils, export getFileData
    remotes/origin/HEAD -> origin/master
    remotes/origin/add_build_script d4a8c4f Merge branch 'master' into add_build_script
    remotes/origin/devel 752bb84 Merge pull request #158 from Gwill/devel
    remotes/origin/devel_qt51 62208f1 update .gitignore
    remotes/origin/master 53b27b8 Merge pull request #138 from tdlrobin/master
    remotes/origin/zrong 2ae98d8 modify CCFileUtils, export getFileData

      删除远程分支:

    $ git push --delete origin devel
    To git@github.com:zrong/quick-cocos2d-x.git
    - [deleted] devel

      重命名本地分支:

      $ git branch -m devel develop
      推送本地分支:

    $ git push origin develop
    Counting objects: 92, done.
    Delta compression using up to 4 threads.
    Compressing objects: 100% (48/48), done.
    Writing objects: 100% (58/58), 1.38 MiB, done.
    Total 58 (delta 34), reused 12 (delta 5)
    To git@github.com:zrong/quick-cocos2d-x.git
    * [new branch] develop -> develop

      在 github 上操作的时候,删除远程分支时若碰到这个错误:

    $ git push --delete origin devel
    remote: error: refusing to delete the current branch: refs/heads/devel
    To git@github.com:zrong/quick-cocos2d-x.git
    ! [remote rejected] devel (deletion of the current branch prohibited)
    error: failed to push some refs to 'git@github.com:zrong/quick-cocos2d-x.git'

      这是由于在 github 中,devel 是项目的默认分支。要解决此问题,这样操作:

      进入 github 中该项目的 Settings 页面;

      设置 Default Branch 为其他的分支(例如 master);

      重新执行删除远程分支命令。

    附GitHub常用命令:

    • git branch 查看本地所有分支
    • git status 查看当前状态
    • git commit 提交
    • git branch -a 查看所有的分支
    • git branch -r 查看远程所有分支
    • git commit -am "init" 提交并且加注释
    • git remote add origin git@192.168.1.119:ndshowgit
    • push origin master 将文件给推到服务器上
    • git remote show origin 显示远程库origin里的资源
    • git push origin master:develop
    • git push origin master:hb-dev 将本地库与服务器上的库进行关联
    • git checkout --track origin/dev 切换到远程dev分支
    • git branch -D master develop 删除本地库develop
    • git checkout -b dev 建立一个新的本地分支dev
    • git merge origin/dev 将分支dev与当前分支进行合并
    • git checkout dev 切换到本地dev分支
    • git remote show 查看远程库
    • git add .git rm 文件名(包括路径) 从git中删除指定文件* git clone git://github.com/schacon/grit.git 从服务器上将代码给拉下来
    • git config --list 看所有用户
    • git ls-files 看已经被提交的
    • git rm [file name] 删除一个文件
    • git commit -a 提交当前repos的所有的改变
    • git add [file name] 添加一个文件到
    • git indexgit commit -v 当你用-v参数的时候可以看commit的差异
    • git commit -m "This is the message describing the commit" 添加commit信息
    • git commit -a -a是代表add,把所有的change加到git index里然后再commit
    • git commit -a -v 一般提交命令
    • git log 看你commit的日志
    • git diff 查看尚未暂存的更新
    • git rm a.a 移除文件(从暂存区和工作区中删除)
    • git rm --cached a.a 移除文件(只从暂存区中删除)
    • git commit -m "remove" 移除文件(从Git中删除)
    • git rm -f a.a 强行移除修改后文件(从暂存区和工作区中删除)
    • git diff --cached 或 $ git diff --staged 查看尚未提交的更新
    • git stash push 将文件给push到一个临时空间中
    • git stash pop 将文件从临时空间pop下来

    git remote add origin git@github.com:username/Hello-World.git

    git push origin master 将本地项目给提交到服务器中

    git pull 本地与服务器端同步

    git push (远程仓库名) (分支名) 将本地分支推送到服务器上去。

    git push origin serverfix:awesomebranch

    git fetch 相当于是从远程获取最新版本到本地,不会自动merge

    git commit -a -m "log_message" (-a是提交所有改动,-m是加入log信息) 本地修改同步至服务器端 :

    git branch branch_0.1 master 从主分支master创建branch_0.1分支

    git branch -m branch_0.1 branch_1.0 将branch_0.1重命名为branch_1.0

    git checkout branch_1.0/master 切换到branch_1.0/master分支du -hs

    git branch 删除远程branchgit push origin :branch_remote_namegit branch -r -d branch_remote_name

  • 相关阅读:
    vue keep-alive的使用
    vscode 快捷键整理
    form表单的验证validator如何传递参数
    使用elementui 的validateField,resetFields,clearValidate的使用
    vue sass样式穿透实现
    部署node服务(在本地模拟环境进行部署)
    利用存css实现弧形边界
    koa mongoose 实践篇,各种必要的功能总结;
    koa mogoose 创建后台服务连接数据库并进行增删改查
    vue项目中 render函数直接操作html元素报错
  • 原文地址:https://www.cnblogs.com/jing99/p/10604774.html
Copyright © 2020-2023  润新知