note 参照 廖雪峰 的blog
初始一个 git 使用
git init
添加一个文件到git 库里 1. git add txt 2. git commit - m "commit"
要查看git库里的状态 使用 git status
要查看有什么变化 git diff(是工作区和暂存区的不同)
git diff --cached 是暂存区和Master里的区别
HEAD 指的是当前版本号 HEAD^ 代表上一个版本 HEAD^^代表上上个版本
可以返回到以前的历史中 git reset --hard commit_id
可以使用git log 查看提交日志
要重返未来,使用 git reflog
每次修改,如果不add 到 暂存区,就不会加入到commit中
git checkout --file 可以丢弃在工作区的修改
如果不想要的修改写到了 暂存区 那么使用 get reset HEAD file 把缓存区清除 再使用 git checkout
git rm 用于删除一个文件
git remote add origin git
链接远程库和本地库git push -u origin master
第一次推送master分支的所有内容
git push
把本地库的内容推送到远程 Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
- 以后推送 使用
git push origin master
git 和 github 远程链接 注意 库的名字要一致
- 如果要从零开始建立维护一个库 那么最好是先在 远程里面建立一个库 然后 使用
git clone
clone 到本地里面
创建分支
查看分支
git branch
创建分支
git branch <name>
切换分支
git checkout <name>
创建并切换分支
git checkout -b <name>
合并某分支到当前分支
git merge <name>
删除分支
git branch -d <name>
当两个分支内容不一样的时候(不是一个比另一个多一部分)这时候merge是会出现错误的,因此这种时候就要将conflict fix好再merge
git log --graph --pretty=oneline --abbrev-commit 可以看到图示的分支的情况
使用 --no-ff 的方式进行merge
git merge --no-ff -m"merge with no-ff" dev
git stash 把当前的工作现场储存起来
git stash list 可以看到存储的list
可以使用git stash apply 恢复 恢复后 使用 git stash drop 删除
或者使用
git stash pop
开发一个新功能 最好开发一个新branch
如果要丢弃一个没有被合并过的分支,可以通过git branch -D 强行删除。
别人clone 远程库的时候,他只能看到本地的master 如果要在dev 上开发的话
git checkout -b dev origin/dev
- 多人协作的时候 通常是这样的:
可以 用
git push origin branch-name
推送自己的修改如果推送失败,说明远程库比你本地的要更新,需要
git pull
试图合并
3.如果合并有冲突,则解决冲突,并在本地提交;
- 没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
- 如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name