• git梳理


    http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000


    本地库管理命令

    git init

    创建版本库repository

    git status

    此时目录下多了一个.git文件夹,里面存储了若干自动生成的文件,用来记录修改信息、暂存区信息等。

    git add <file>

    为批量或者单独向暂存区提交做准备。修改之后的文件,在add之前的状态是:Changes not staged for commit。在add之后的状态是:Changes to be committed

    git commit  -m ‘...’

    将之前add的内容,从工作区添加到暂存区.将所有的变动都提交之后,git status 的状态会变成nothing to commit (working directory clean)

    git checkout -- <file>

    如果要撤销工作区(working derectory)的修改,并且还没有add到暂存去,使用git checkout --<file>可以将暂存区当前的内容回复到工作区

    git reset HEAD <file>  结合 git checkout  -- <file>

    如果错误的修改已经add到暂存区,那么首先利用git reset hEAD <file>  将暂存区的add撤销,之后在用git checkout  -- <file>将暂存区恢复到工作区

    git reset --hard commit_id

    如果错误修改已经commit,想要恢复到某一个版本,使用上述命令,其中commit_id可以使用,git log或者git reflog来查找

      git rm <file> 结合git commit -m ''

    如果确实要删除某个文件,那利用git rm <file> 删除工作区中的文件,最后再用git commit -m'' 将删除提交,此时版本库才算彻底删除

    如果是本地的rm命令不小心删除了工作区的某个文件,那么利用gm checkout -- <filename>就可以将版本库中的文件恢复到工作区

    分支管理

    git branch <branchName>

    该命令用于创建分支

    git checkout <branchName>

    该命令用于切换分支

    git branch -b <branchName>

    创建并切换分支

    git merge <branchName>

    将branchName 对应的内容,合并到当前分支上,如果合并后有冲突,那么将冲突部分进行修改,之后重新提交

    如果在分支合并到master之前,想要删除该分支,可以利用git branch -D <branchName>进行强制删除

    git branch -d <branchName>

    删除branchName分支

    git branch -D <branchName>

    强制删除branchName 分支

    git stash  结合 git stash list 结合 git stash apply 或者 git stash pop

    保存当前的工作区,通常用于现在的工作还没有完成,来不及提交的情况下,需要开辟其他分支完成其他任务,之后可以利用git stash list 来查看存储的工作现场,在合适的时候再利用git stash pop或者git stash apply恢复工作现场(后者还需要利用git stash drop来输出list中的stash)


    远程仓库

    本地库和远程库的构建及关联

    如果是现有本地库,要依据本地库构造远程仓库

    1)登录github,选择create a new repo,创建一个远程仓库

    2)之后在本地的版本库目录下运行目录,添加一个远端 git remote add origin git@github.com <username>/<原创仓库名.git>

    3) 将本地库的内容推送到远端 git push -u origin master(第一次推送的时候,使用-u参数,该参数首先将本地的master分支和远端的master分支进行关联,之后再进行推送,在之后的推送中,就不再需要-u参数)

    经过测试,有时候需要执行这个命令

    git branch --set-upstream-to=origin/master master

    如果是先有远程库,要依据远程库构建本地库

    此时相对简单,使用git clone命令即可 git clone git@github.com:<username>/<远程库名>.git

    不过注意此时复制的仅是远程的master分支,其他分支可以参见下面的讲解

    和远端进行交互

    git remote 或者 git remote -v

    查看远端版本库的信息

    git push origin <branchName>

    向远端推送某个分支(事先需要建立对应分支间的关联,这样才能自动推送到对应的分支)

    一般本地和远端的master分支在构建版本库的时候就关联好了,对于clone命令,一般本地只能复制远端的master分支。如果想要在其他分支上开发,以dev分支为例:

    1)在本地创建dev分支

    git checkout -v dev origin/dev

    2)但是这样,还没有建立本地的dev分支和远程dev分支之间的关联,使用下面的命令建立关联

    git branch --set-upstream dev origin/dev

    建立起关联之后

    git push origin <branchName>

    就是向远端推送branchName分支对应的内容

    git pull 

    就是从当前本地工作的分支对应的远端分支拉取内容

    冲突解决

    从本地推送分支,使用git push origin <branch-name>,如果推送失败,那么首先利用git pull 拉取内容,在本地解决冲突后再提交

    标签管理

    git tag  -a <tagName> <commit_id> -m'说明文字'

    给某个提交版本打上标签,如v1.0

    git tag 

    查看所有标签

    git show <tagName>

    查看指定的标签

    git push origin <tagname> 

    向远端推送一个标签

    git push origin --tags

    向远端推送所有标签

    git tag -d <tagName>

    删除一个本地的标签

    git push origin : refs/tags/<tagName>

    删除一个远端的标签

  • 相关阅读:
    mysql、mongodb、redis区别
    Redis面试题
    【开发提效】开发提效技巧
    【代码规范】16条军规
    mysql数据库连接字符串
    mysql数据库连接字符串
    好用的api接口
    node + express + vue
    跨源资源共享(CORS)
    fehelper
  • 原文地址:https://www.cnblogs.com/bobodeboke/p/4157201.html
Copyright © 2020-2023  润新知