当前位置 博文首页 > God_Y:日常办公 之 ? git--办公常用命令整理
简介
主要整理一些自己在公司用的比较多的部分,不至于说的更多,反而更迷糊,想要学习详细的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
?
多人协作的工作模式步骤:
第一步,用git push origin <branch-name>
推送自己的修改的部分内容;
如果推送失败了,可能是远程分支比你的本地更新,所以用git pull将远程的内容拉取下来
试图合并;
如果合并有冲突,则解决冲突之后,在本地提交一次;
没有冲突或者解决掉冲突后,再用git push origin <branch-name>
推送就可以了
?
如果
git pull
提示no tracking information
,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>
。这就是多人协作的工作模式,一旦熟悉了,就非常简单。
?
?
?
cs