git 常用命令
2.git prelog 可以查看之前所有本地的commit信息 ,git cherry-pick 提交号 可以取回来
3..git/logs/refs/heads 里面含有所有的分支,和各自本地的commit记录,第二列为commit号,可以通过git cherry-pick 提交号 可以取回来
4. git config --global alias.st status git config --global alias.co checkout git config --global alias.ci commit
git config --global alias.br branch
5. git config --global color.ui true 6. git config -l 可以查看所有的配置信息 git config user.name 查看用户名 git config user.email 查看电子邮箱git commit -m "comment" 避免打开commit模板 7. git commit -am "messages " 一条命令,包含add和commit 操作信息: 1. 删除远程分支:
$ git push origin --delete
删除远程tag:
git push origin --delete tag删除本地tag git tag -d
冲突解决方法 :
git pull 时候出现共同修改的文件 pull不下来
应该本地先提交 :1.git add 2.git commit
再进行git pull 重新更新下来,如果更新下来则说明没有冲突,因为共同修改的不在同一行,会自动merget成功。如果没有pull下来,则说明有共同修改同一行 git pull== git fetch + git merge 忽略文件无法进行忽略处理: 1.git rm -r project/bin 删除bin整个文件夹东西 2. git commit -m "comment 信息" 只会提交HEAD最新一次commit代码 如果是-am 则是将本地全部的修改都提交上了,包括没有在index中的,非常危险 3. .gitignore文件 ,如果要忽略的内容已经在远程库repositories中了,则无法进行忽略,需要在创建库时删除掉或者git rm -r project/folder才可以 pull的流程: Git中从远程的分支获取最新的版本到本地有这样2个命令: 1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge git fetch origin master // 获取远程master分之到本地临时origin/master分之
git log -p master..origin/master // 比较本地master分之和 临时origin/master分之 区别
git merge origin/master // 将临时origin/master分之合并到本地master分之上
上述过程其实可以用以下更清晰的方式来进行:
git fetch origin master:tmp // 获取远程master分之到本地临时tmp分之
git diff tmp // 比较本地master分之和 tmp分之 区别
git merge tmp // 将tmp分之合并到本地master分之上
2. git pull:相当于是从远程master分之上获取最新版本并merge到本地当前分之
git pull origin master //上述命令其实相当于git fetch 和 git merge
在实际使用中,git fetch更安全一些, 因为在merge前,我们可以查看更新情况,然后再决定是否合并
假设要合并最后的2个提交
1. git rebase –i HEAD~2
2. 将第二个pick修改为squash或者s,然后输入":wq”退出。
3. 这时git会自动第二个提交合并到第一个中去。并提示输入新的message(就是我们常说的comments)
4. 编辑输入新的message,然后输入":wq"退出
5. 此时本地的(HEAD中)最后两次提交已经被合并为一个。git log可以查看。
6. 如果需要提交到远端,运行git push origin master --force即可。
===========================================
虽然xcode内置强大的git 工具。但是当你工程文件冲突时,就不得不在xcode外合并。
| 1 2 3 4 5 6 |
git config --global merge.tool diffmerge
git config --global mergetool.diffmerge.cmd "/Applications/DiffMerge.app/Contents/MacOS/diffmerge --merge --result=\$MERGED \$LOCAL \$BASE \$REMOTE"
git config --global mergetool.keepBackup false
git config --global diff.tool diffmerge
git config --global difftool.diffmerge.cmd "/Applications/DiffMerge.app/Contents/MacOS/diffmerge \$LOCAL \$REMOTE"
|
安装diffmerge
在git仓库目录下运行 git mergetool 就可以了
master 分之上之行merge命令,merge developer时,如果出现冲突
1.想要全部保留developer 分之 则 git checkout --theirs file-name
2. 想要全部保留master分之 则 git checkout --ours file-name