git指令

git init                                                               初始化一个Git仓库
git status                                                          查看当前状态
git add <file>                                                    添加到暂存区
git commit -m <message>                               提交到当前分支       
git diff <filename>                                            查看指定的文件,在工作区和仓库中有什么不同
git log --pretty=oneline                                     显示从最近到最远的提交日志,--pretty=oneline每个commit只显示一行
git reset --hard HEAD^                                     回退到上一个版本,HEAD^^是上上个版本,前提是在push之前
git reset --hard commit_id                                回到未来的某个版本,前提是在push之前
git reflog                                                           查看你的每一次命令,可以看到提交历史
git checkout -- <file>                                        丢弃工作区的修改,这里有两种情况:
                                                                         自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
                                                                         已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
git reset HEAD <file>                                        把暂存区的修改撤销掉(unstage),重新放回工作区
git rm <file>                                                       从版本库中删除文件
ssh-keygen -t rsa -C "youremail@example.com"                                       创建SSH Key
git remote add origin git@github.com:michaelliao/learngit.git                    本地仓库关联GitHub仓库
git push -u origin master                                   把本地库的内容推送到远程。由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
git clone git@github.com:michaelliao/gitskills.git                                        从远程仓库克隆
git checkout -b dev                                            创建并切换到dev分支,相当于两条命令:git branch dev
                                                                                                                                             git checkout dev
git checkout -b dev origin/dev                           创建远程的dev分支到本地
git branch                                                          查看分支
git merge dev                                                    返回到master分支后,使用此命令把dev分支的工作成果合并到当前分支
                                                                          默认使用fast-forward方式,只是移动指针,执行速度很快
git branch -d dev                                               合并以后,就可以删除dev分支,fast-forward模式下,会丢掉分支信息。
git log --graph --pretty=oneline                          查看分支合并图,--abbrev-commit使用短的commit-id
                                                                          两个分支都进行了提交,合并的时候会冲突,需要先解决冲突再合并
git merge --no-ff -m "message" dev                  --no-ff禁用fast-forward,Git就会在merge时生成一个新的commit
git stash                                                            工作进行到一般没法提交,需要切换到别的分支进行更紧急的任务,比如修复                                                                                  一个bug,此时可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作
git stash list                                                       查看保存的工作现场
git stash apply                                                   恢复工作现场,但是恢复后,stash内容并不删除,需要用git stash drop来删除
git stash pop                                                      恢复的同时把stash内容也删了
git stash apply stash@{0}                                  恢复指定的stash
git branch -D feature-vulcan                              分支还没有被合并,如果删除,将丢失掉修改。使用大写的-D参数强行删除。
git remote                                                           查看远程仓库,-v参数显示详细信息
git pull                                                                push冲突时,先用此命令把最新的提交从origin/dev抓下来,然后,
                                                                           在本地合并,解决冲突,再推送
git branch --set-upstream-to=origin/dev dev      如果pull失败了,原因是没有指定本地dev分支与远程origin/dev分支的链接
                                                                           此命令设置dev和origin/dev的链接
git rebase                                                           把本地未push的分叉提交历史整理成直线
git tag <name>                                                   打一个新标签,标签是版本库的快照,指向某个commit的指针,跟分支很像
                                                                           但是分支可以移动,标签不能移动,所以,创建和删除标签都是瞬间完成的。
git tag                                                                 查看所有标签
git tag <name> commit-id                                  针对某次提交打标签
git show <tagname>                                          查看标签信息
git tag -a v0.1 -m "message" commit-id             创建带说明的标签,-a指定标签名
git tag -d v0.1                                                     删除标签


git add -f <file>                                                  文件被.gitignore忽略了,可以用-f强制添加到Git
git check-ignore -v <file>                                  查看跟某个文件有关联的.gitignore规则
git config --global alias.st status                       配置命令的别名
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"  这么变态的命令取个别名可以节省很多时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值