1 创建版本库 mkdir learngit
cd learngit
pwd //当前目录
git init //命令把这个目录变成Git可以管理的仓库
git add //告诉Git,把文件添加到仓库
git commit //命令,-m后面输入的是本次提交的说明,可以输入任意内容
git diff
git checkout -- readme.txt // 命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令 .意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
git reset HEAD file 可以把暂存区的修改撤销掉(unstage),重新放回工作区
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。
穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone命令克隆。
Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。
git checkout -b 命令加上-b参数表示创建并切换,相当于以下两条命令:
$ git branch dev // git branch 命令会列出所有分支,当前分支前面会标一个*号
$ git checkout dev
git config --global alias.st status //配置别名
git branch 查看分支
git branch <name> 创建分支
git checkout <name> 切换分支
git checkout -b <name> 创建+切换分支
git merge <name> 合并某分支到当前分支
git branch -d <name> 删除分支
git log --graph命令可以看到分支合并图
修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;
当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop(也可以用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除),回到工作现场;
如果要丢弃一个没有被合并过的分支,可以通过git branch -D 强行删除
git remote -v;//查看远程库信息 ,本地新建的分支如果不推送到远程,对其他人就是不可见的;
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 pull,//从远程抓取分支,如果有冲突,要先处理冲突。
git push origin <tagname> //可推送 本地标签
git push origin --tags //可推送全部未推送过的本地标签
git tag -d <tagname> //可删除一个本地标签
git push origin:refs/tags/<tagname>//可以删除一个远程标签