git

level 6

rebase

git fetch只获取,并不合并

本地与远端使用git rebase
git rebase进行了三步操作

把所有master的改变放到一个临时区域里面

运行所有origin/master的提交

运行在临时区域的commits

本地两个分支间的rebase,master和  develop均有提交

在develop分支下,

git rebase master

然后再git checkout master

把develp合并过来

git merge develop

conflicts本地master和远端origin/master都修改了同一个文件,并在本地提交

解决冲突

在master上git fetch

然后git rebase,这样保证在master上有最新的代码

这里会提示有冲突

当解决了问题,则用git rebase –continue

level 7

git log
sha hash

git config –global color.ui true

git log –pretty=oneline

git log –oneline –stat

git log -p 查看具体的改变

git diff  == git diff HEAD
git diff HEAD^

git diff HEAD~5
git diff HEAD^..HEAD

git diff sha..sha
git diff master develop

对于单个文件一直以来的变化
git blame index.html –date short
git status 看到有不想提交的,则在 .git/info/exclude 把文件过滤掉

.gitignore
git 删除文件
git rm README.txt
在 system 中不会被删除,但在 git 中会删除
git rm –cached development.log

mac 指定 merge 工具

git config –global merge.tool opendiff
git config –global alias.st status 来设置 status 的别名

level 4

git push rejected

首先git pull

pull的动做细分

git fetch到origin/master

将origin/master合并到本地  master

git merge origin/master

现在再push

conflict

必须手动解决

level 1

查看staged文件做了哪些改动

git diff –staged

在提交的同时进行添加

git commit -a -m “add index”

将修改的文件恢复

git checkout — cats.html index.html

level 2

git reset –soft HEAD^  undo上一次提交,并将改变放到 staging 中
git commit –amend -m “New Message”  只修改上一次的提交
git reset –hard HEAD^ undo 上一次的提交和修改,你的修改会丢失
git reset –hard HEAD^^ undo 上两次的提交和修改

git reset HEAD ostrich.html

查看远端的 fetch 及 push地址
git remote -v

git remote add <name> <address>

删除远端 repo
git remote rm <name>

git push -u origin master

origin是远端 repo 的名字, master 是本地分支的名字

发表评论

电子邮件地址不会被公开。 必填项已用*标注