创建版本库
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删除一个远程标签。


蛙哇
307 声望20 粉丝