当前位置 博文首页 > God_Y:日常办公 之 ? git--办公常用命令整理

    God_Y:日常办公 之 ? git--办公常用命令整理

    作者:[db:作者] 时间:2021-07-05 09:45

    简介

    主要整理一些自己在公司用的比较多的部分,不至于说的更多,反而更迷糊,想要学习详细的Git教学可以去专门的网站。相当于边学边记了,共同进步!

    这篇文章里会把常用的命令跟作用跟大家说一下,日常办公足够用了,对某个可能没说到功能大家也可以点对点去搜一下学的更快。

    首先大家要用到Git,一个很大的原因是公司代码存放要用到,所以这篇文章主要介绍公司中经常用到的一些命令(对症下药)

    至于Git账户的一些配置,此文章就先不说了,后边等写一个专门配置Git的。主要说一下命令了。

    ?

    正文
    ?

    最普通的一次提交过程:先拉取服务器的内容,然后将你的修改添加到暂存区,然后提交修改文件到工作区,最后将修改的推送到服务器


    git pull? ? --拉取服务器的内容
    git add [filename]? ?--提交修改文件进暂存区
    git commit? ?-m "此次修改备注"? --提交修改文件到工作区
    git push origin branch-name? ?--推送到某个分支


    git status? ?--查看当前状态,列出所有新修改,暂存区文件的修改状况
    git diff? ?--查看工作区与版本库的区别
    git log ??$ git log?--pretty=oneline? ? ?--可以查看提交历史
    git reset --hard commit_id? ?--回退到某次版本
    git reflog? ? --查看命令历史


    git checkout ?--[file]? ? 把文件在本地区的修改全部撤销,无论是添加或者删除了(将这个文件恢复到最近一次提交的状态)(取消git add ?| ?git commit)
    git reset HEAD [file]? ?把暂存区的修改退回到本低(取消git add)
    git reset --soft HEAD^? ? 取消本次的已提交的git commit?

    git fetch --all  下载远程的库的内容,但是并未做任何代码合并的合并动作
    git reset --hard origin/master   拉取远程master分支上的代码,放弃本地修改,强制更新


    进阶

    git clone git@github.com:michaelliao/gitskills.git
    将git clone后面的换成自己的Git库地址,就可以克隆了

    git ?branch []? ?创建分支
    git checkout []? ?切换分支? ?(git switch []? ?也可以)
    git checkout -b []? ?创建并切换分支 git switch -c []
    git branch? ?查看列出所有分支 当前分支前会有一个"*"
    git merge []? ?合并指定分支到当前分支
    git branch -d []? ?删除某个分支
    git branch -D []? ? 强制删除某个分支

    git log --graph? ? 查看分支合并的情况
    git log --graph --pretty=oneline --abbrev-commit? ? 查看分支合并的情况

    git stash? ?储藏当前工作现场
    git stash list? ?查看储藏的工作现场
    git stash apply? ?恢复现场
    git stash drop? ?删除储藏的现场
    git stash pop? ?恢复并删除储藏的现场
    git stash apply stash@{0}? ? 恢复指定的储藏现场

    git cherry-pick [commit_id]? ? 复制一个特定的提交到当前分支
    git cherry-pick --quit? ? 退出复制

    git remote add origin [git@gitee.com:liaoxuefeng/learngit.git]? ? 关联一个远程库
    git remote? ? 查看远程库的信息
    git remote -v? ? 查看更详细的信息
    git remote rm origin? ? 删除已有的远程库

    git push origin branch-name? ? 推送到某个分支
    git pull? ?拉取
    git checkout -b branch-name origin/branch-name? ? 在本地创建和远程分支对应的分支
    git branch --set-upstream branch-name origin/branch-name? ? 建立本地分支和远程分支的关联

    git tag <tagname>? ? 新建一个标签
    git tag -a <tagname> -m ""? ?可以指定标签信息
    git tag? ? 查看所有标签信息
    git tag -d <tagname>? ? 删除标签
    git push origin <tagname>? ? 推送某个标签到远程
    git push origin --tags? ? 一次性全推送
    git push origin :refs/tags/<tagname>? ? 可以删除一个远程标签。

    $ git config --global alias.co checkout? ? ?可以给命令改别名

    ----------------

    使用过程中出现的问题

    1.分支切换

    从服务器上拉下来的文件,我在本地做了修改,用git status 查看后,可能会出现如下所示,第一个框绿色部分代表我进行了git add 操作的文件,但是还没有git commit。第二个框里面的代表在本地原有文件上所做的修改(还没有git add等操作)。第三个框表示新添加的文件。这个时候我进行分支切换的时候,有可能会报错,因为我修改的这几个文件有可能再另一个分支也存在,我修改了此分支的,所以不让切换到另一个分支,会发生冲突。这时候如果想切换分支,有几种方法可以参考:1.先git commit 提交到工作区? 2.git checkout --[filename] (将这个文件恢复到最近一次提交的状态,慎重选择,因为这样会把本地修改的内容给删成最后提交的状态)? ? 3.git stash? (将当前工作现场“储藏”起来,等以后恢复现场后继续工作)。切回来,git stash apply 回到最新的储藏。?git stash list 显示多次的储藏,根据显示的版本回到之前的储藏。

    2.合并分支

    合并分支的时候会出现冲突

    <<<<<<< HEAD
    123
    =======
    12
    >>>>>>> feature1

    ?

    多人协作

    多人协作的工作模式步骤:

    1. 第一步,用git push origin <branch-name>推送自己的修改的部分内容;

    2. 如果推送失败了,可能是远程分支比你的本地更新,所以用git pull将远程的内容拉取下来试图合并;

    3. 如果合并有冲突,则解决冲突之后,在本地提交一次;

    4. 没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就可以了

    ?

    如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>

    这就是多人协作的工作模式,一旦熟悉了,就非常简单。

    ?

    ?

    ?

    cs