创建本地仓库
git init
查看
git status
从工作区推到缓存区域(没有时间上的维度)
git add .
从缓存区推到 本地仓库(产生时间维度, 产生版本)
git commit -m "add 1"
对比版本库和工作区的文件, 查看修改的内容
git diff
查看版本库时间维度上的各个版本, 查看commit 信息
git log
更简洁版本
git log --graph --pretty=oneline --abbrev-commit
回到时间轴上的上一个版本
git reset --hard HEAD^
回到上上个版本
git reset --hard HEAD^^
回到前100个版本
git reset -hard HEAD~100
q是退出某个状态.
查看命令历史
git reflog
查看工作区和版本库里面最新版本的区别
git diff HEAD -- readme.txt
撤销工作区的修改,跟暂存区保持一致,
(如果暂存区没文件,就和版本库保持一致.)
git checkout -- "readme.txt"
让暂存区的变成版本库里的.
git reset HEAD readme.txt
上面两个操作,相当于把数据的流向更改了一下
删除文件
rm test.txt
创建SSH Key
ssh-keygen -t rsa -C "youremail@example.com"
默认目录
C:\Users\user\.ssh
跟远程仓库进行连接
git remote add origin git@github.com:michaelliao/learngit.git
把本地库的内容推送到远程
git push -u origin master
-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
创建并切换新分支
$ git checkout -b dev
创建分之
$ git branch dev
切换分之
$ git checkout dev
查看分支
$ git branch
查看远程分支
$ git branch -r
合并分支
$ git merge dev
删除分支
$ git branch -d dev
合并时禁用 fast forward 模式
能留下分支的痕迹
git merge --no-ff -m "merge with no-ff" dev
把当前工作现场临时“储藏”起来
不会放进版本库
git stash
查看临时储藏
git stash list
恢复储藏
git stash apply
删除储藏
git stash drop
推荐用这个:恢复+ 删除储藏
git stash pop
丢弃一个没有被合并过的分支,强行删除。
git branch -D <name>
查看远程库的信息
git remote
查看远程库的信息,查看详细信息,
git remote -v
推送分支
git push origin master
推送另一分支
git push origin dev
获取远程分支
git fetch origin dev
创建与远程分支对应的本地分支
git checkout -b dev origin/dev(如果没有上一句,这一句会报错.)
创建本地dev 和 origin/dev的连接
$ git branch --set-upstream-to=origin/dev dev
git commit之后进入vim(vi)界面,如何退出
esc , shift + z, 2次
github添加ssh key之后push还要输入账号密码的解决方法
别用http, 用git开头的仓库地址.
用git协议.
我想更改协议,重新设定仓库地址
github常见操作和常见错误!错误提示:fatal: remote origin already exists.
1、先输入 git remote rm origin
2、再输入 git remote add origin git@github.com:djqiang/gitdemo.git 就不会报错了!
拉取远程分支报错,
git 拉取远程分支报错 fatal: 'origin/dev' is not a commit and a branch 'dev' cannot be created from it
$ git pull
$ git checkout -b dev origin/dev
git 拉取远程分支到本地
master对应master 分支对应分支.
git init
git remote add origin git@github.com:wudimingwo/test4.git
git fetch origin dev
git checkout -b dev origin/dev (如果没有上面那一句这一句是不会有效果的.)
git 相关常用操作指令
详解git fetch与git pull的区别
git fetch origin dev 相当于获取远程的分支 但不会和本地的分支merge
如果没有相应本地的分支, 也不会自动创建.
而 git pull origin dev 相当于 git fetch + git merge
git checkout 出错原因 (error: pathspec 'master' did not match any file(s) known to )