一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第10天,点击查看活动详情。
git常用命令
- pwd 显示当前的目录
- cat 文件名(带后缀) 打印文件内容
- rm 文件名(带后缀) 删除文件
基础
配置Git的唯一标识
git config --global user.name "用户名"
git config --global user.email "邮箱名"
-
git init 把当前目录变成git可以管理的仓库,就相当于在当前目录下多了个.git文件。
-
git add readme.txt 将文件添加到暂存区里面
-
git commit -m "提交的注释" 把文件提交到仓库(只有在Git仓库目录下使用才有效),不管是提交修改还是提交文件,都要先 add。
-
git status 查看是否还有文件未提交(在提交之前和之后都要查看一下) 而且这个命令会提示add让提交修改,或者checkout放弃修改。 <因为没有提交,所以checkout的版本并没有更新,所以checkout肯定就是放弃修改了>
-
git diff 文件名(有后缀) 查看文件修改了哪些内容
-
git log 最近到最远的显示日志
-
git log --pretty=oneline 一行打印日志,但是不显示作者和日期信息
版本
- git reset –-hard HEAD^ 回退到上一个版本
- git reset –-hard HEAD^^ 回退到上上个版本
- git reset --hard HEAD~100 回退到前100个版本
- 在某个版本上,git log只能查看这个版本之前的历史信息,cat打印文件也只会显示那个版本的信息。
- git reflog 查看所有的版本号
- git reset --hard 版本号 恢复到某个版本号
远程仓库
1.建立本地仓库与远程仓库的连接
git remote add origin 地址
2.怎么修改Git remote add时使用的远程仓库
-
修改命令
git remte origin set-url URL
2.先删后加
git remote rm origin
git remote add origin URL
3.git push命令,实际上是把当前分支master推送到远程。(注意远程必需是一个空仓库,否则会报错) 由于远程库是空的,我们第一次推送master分支时,加上了 –u参数,Git不但会把本地的master分支内容推送的远程新的master分支, 还会把本地的master分支和远程的master分支关联起来, 在以后的推送或者拉取时就可以简化命令。 推送成功后,可以立刻在github页面中看到远程库的内容已经和本地一模一样了
4.git clone 将远程克隆到本地
分支操作
1.创建和切换分支 假如要创建一个分支dev
git checkout -b dev 表示创建并切换,相当于如下2条命令
git branch dev
git checkout dev
2.查看分支
git branch 查看分支,会列出所有的分支,当前分支前面会添加一个星号
3.合并分支
git merge dev 把dev分支上的内容合并到分支master上
4.删除dev分支
在合并完分支之后可以删除分支
git branch -d dev
上面用小d可能清除不干净,要用大D。
git branch -D dev
清除完可以通过git branch再查看分支。
5.解决冲突 如果子分支和master分支,对于同一文件的同一位置,显示不同的内容。那么就会产生冲突。 cat打印文件,git会标记不同的内容
6.分支管理 通常合并分支时,git一般使用”Fast forward”模式,在这种模式下,删除分支后,会丢掉分支信息, 现在我们来使用带参数 –no-ff来禁用”Fast forward”模式。 合并dev分支,使用命令 git merge –no-ff -m “注释” dev
分支策略:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
首先master主分支应该是非常稳定的,也就是用来发布新版本,一般情况下不允许在上面干活
,干活一般情况下在新建的dev分支上干活,干完后,比如上要发布,
或者说dev分支代码稳定后可以合并到主分支master上来。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7.bug分支 比如我在开发中接到一个404 bug时候,我们可以创建一个404分支来修复它,但是,当前的dev分支上的工作还没有提交。 并不是我不想提交,而是工作进行到一半时候,我们还无法提交,比如我这个分支bug要2天完成,但是我issue-404 bug需要5个小时内完成。怎么办呢?