Think before you speak, read before you think.

git notes

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

当前分支与 master 的区别

git log --oneline  ...master

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

undo上一次提交,并将改变放到 staging 中

git reset --soft HEAD^

只修改上一次的提交

git commit --amend -m "New Message"

undo 上一次的提交和修改,你的修改会丢失

git reset --hard HEAD^

undo 上两次的提交和修改

git reset --hard HEAD^^

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 是本地分支的名字

设置 git config user

git config --global --edit
#全局配置在 ~/.gitconfig
[user]
    name = myusername
    email = [email protected]

当前项目配置在
.git/config

想要保存一个空目录时,一般添加一个空文件.gitkeep,比如

secrets/.gitkeep

macOS 自动保存到 keychain

git config --global credential.helper osxkeychain

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *