Git常用命令

创建版本库
mkdir learngit 创建learngit目录
cd learngit 进入文件夹里
pwd 查看目录路径
git init 初始化仓库
git add re.txt 在learngit目录下创建文本,提交它。
git commit —m“”提交到本地仓库,引号写提交的具体内容
git status 掌握工作区的状态。
git diff 工作区状态被改变,用这查看修改内容。
小结:
初始化一个Git仓库,使用git init。
添加文件到Git仓库,分两步:
使用命令git add<files>,注意,可反复多次使用,添加多个文件。
使用命令git commit -m<message>,完成。
版本回退
git log 命令显示从最近到最远的提交日志。
git log –pretty=oneline 简化日志信息。
git reset–hard HEAD^回退到上一个版本。HEAD^^回退到上上个版本。HEAD~100回退到往上100版本。
git reflog用来记录你的每一次命令。
小结
HEAD指向的版本就是当前版本,因此,Git允许我们在各个版本之间穿梭。使用命令git reset–hard commitId。
穿梭前,用git log查看提交历史,以便回退到哪个版本。
要重返未来,用git reflog查看命令历史,以便确定要回到未来哪个版本。
撤销修改
git checkout –files。当工作区修改还没有添加到暂存区时,撤销修改。
git reset HEAD files。当添加到暂存区时,返回当1,在使用git checkout files就可以回退。
当提交后,使用git reflog ,git reset hard commitId版本回退,前天没提交到远程版本库。
删除文件
rm file用于删除工作区的文件,如果删除之前,文件已经提交,则可以git checkout –file 从从版本库里替代工作区的找回。
从版本库中删除文件git rm file,提交git commit -m””。
添加远程仓库
git remote add origin ssh地址关联远程库。
git push -u origin master第一次推送master分支的所以内容。
git push origin master 此后修改就可以这样这个推送。
好处:本地工作完全不考虑远程库的存在,没联网也可以正常工作。SVN则必须联网。
远程库克隆
git clone ssh地址从远程库克隆项目。
创建和合并分支
查看分支:git branch
创建dev分支:git branch dev
切换dev分支:git checkout dev
创建切换分支dev:git checkout —b dev
合并某分支到当前分支:git merge dev
删除dev分支:git branch—d dev
解决冲突
解决冲突修改我们希望的内容,再提交,用git log–graph可以看到分支合并图。
git merge –no–ff-m “” dev表示禁用fast forward模式,在该模式下,删除分支后,会丢掉分支信息。
修复bug,工作一半,现在想进行bug修复,git stash隐藏工作内容,修复完之后恢复有两种方法:git stash apply这种还需要git stash drop来删除stash内容,另外一种使用git stash pop直接恢复并删除stash内容。当手头工作还没有完成时,先把工作现场git stash一下,然后去修复bug,修复好,再git stash pop,回到工作现场。

开发一个新feature,最后新建一个分支。如果要丢弃一个没有被合并的分支,可以通过git branch -D name强行删除。

查看远程库信息:git remote -v
本地新建分支不推送,别人就不可见
从本地推送,git push origin branchname ,如果失败,则git pull 抓取远程新提交。
在本地创建和远程分支对应的分支,git checkout -b branchname origin/branchname,本地和远程最好一致。
建立本地和远程分支的关联:git branch –set-upstream -to branchname origin/branchname 。
从远程抓取分支,git pull有冲突要解决冲突。

rebase操作可以把本地末push的分叉提交历史整理成直线。
rebase的目的是使我们在查看历史提交变化变得跟容易,因为分叉的提交需要三方对比。
创建标签
git tag name创建标签,默认为HEAD,也可以指定commitID。
git tag -a tagname -m “”指定标签信息
git tag查看所有标签。
操作标签
git push origin tagname 推送一个本地标签。
git push origin–tags推送全部未推送的本地标签。
git tag-d tagname删除一个本地标签
git push origin:refs/tags/tagname删除一个远程标签。

    原文作者:小羊羔
    原文地址: https://segmentfault.com/a/1190000019593563
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞