[git init ]初始化仓库
[git add 标记文件(可多个文件)]
[git add --all]
[git commit -m "提交文件描述"]
[git status ] //查看结果,掌握仓库状态
[git diff 文件]
[git log] 查看日志
[git log --pretty=oneline] 单行日志 ,注意这里的--后无空格
HEAD表示的当前分支当前版本,HEAD^表示上一个版本, HEAD~100往前一百个版本
[git reset -- hard HEAD^] 回退到上一个版本,注意这-- 前后空格hard
^是cmd.exe的escape字符,属于特殊字符,命令里要用到文字 ^ 时必须用双引号把它夹起来,因此只要如下就可以正确执行:
git reset --hard HEAD"^"
或者:
git reset --hard "HEAD^"
linux:[cat 文件] 查看文件内容
window Dos: [type 文件] 查看文件内容
[git reflog] 记录每一次命令
[git checkout -- 文件] 把该文件在工作区的修改全部撤销,如果文件只修改未添加到暂存,则撤销后跟版本一摸一样,如果已经在暂存区后的修改,撤销修改到进入暂存区后的状态。注意--前后都有空格
[git checkout 文件名] 切换到另一个分支
[git reset HEAD 文件] 撤销该文件在暂存区的修改
[git rm 文件] 把文件从版本库删除
参见学习7-创建sshkey,关联GitHub远程仓库
ssh-keygen -t rsa -C "[email protected]"
进入本地仓库目录使用命令
git remote add origin https://github.com/heary29/learnGit.git 关联一个远程仓库
注意origin表示的是远程库
git push -u origin master 就是将当前分支master推送到远程origin/master,由于第一次推送所有有u参数,此后的提交就可以直接使用 git push origin master
[git push origin 分支名] 在远程仓库上创建一个分支
如果出现fatal: I don't handle protocol 'https'错误
删除错误的Git仓库地址,重新添加即可
$ git remote rm origin
$ git remote add origin yourURL
本地仓库名必须与远程仓库名一致,否则找不到。也可以使用克隆
git clone github.com:heary29/learnGit.git
一开始master是一条分支线,Git用master指向最新提交的,再用HEAD指向master,就能确定当前分支,当创建一个新的分支dev,git 就创建了一个指针dev,指向master相同的指向,HEAD指向dev,就表示切换到dev分支了。
[git checkout -b dev ] 表示创建并切换分支到dev
[git branch dev] 在本地仓库创建分支dev
[git checkout 分支名] 切换分支
[git branch] 查看所有分支
[git merge dev] 合并指定分支到当前分支
[git merge --no-ff -m"不使用快速合并模式合并”分支名]
[git log --graph]产看分支的具体情况,注意--后边无空格
[git branch -d dev]删除分支dev
[git branch -D dev]丢弃一个没有被合并过的分支,强行删除
[git stash] 把当前修改还未commit先“储存起来”
[git stash list]查看被储存起来的分支
[git stash apply]恢复stash内容但不删除,删除使用git stash drop
[git stash pop]恢复stash内容后删除
[git checkout -b dev origin/dev]本地没有这个分支,将远程origin的dev分支拉取到成本地分支dev
[git branch --track dev origin/dev]指定本地Dev分支与远程origin/dev分支的链接
或
[git branch --set-upstream-to dev origin/dev]指定本地Dev分支与远程origin/dev分支的链接
[git pull]把最新提交的从当前分支拉取下来