又是万恶的git啊
参考: 很多 多到记不下来 反正网上一搜全都有
说在前面
千万不要删掉.git
文件!!!!!!!!!!!
只要.git
在 一切问题都不是问题 大不了就回退嘛
如果删了的话 呵呵 一夜回到解放前 o(╥﹏╥)o
进到一个项目里面先初始化git 系统会创建.git文件夹
git init
然后添加远程仓库
git remote add origin <address>
本地修改完一个代码要保存到磁盘上
git add .
git commit -m "xxxxxxxx"
在push之前先把远程分支上的更新拉下来 这个git pull
相当于执行了git fetch
和git merge
git pull origin/<branch>
如果想撤销这个pull
操作的话 先查看历史版本 也就是你要回退到的那个版本
git reflog
然后找到那个版本的版本号 也就是HEAD@{x}
git reset --hard HEAD@{x}
或者你也可以敲HEAD@{x}
前面的那一串十六进制数
例如有一条记录
06c5153fc (HEAD -> tempDev, dev) HEAD@{0}: checkout: moving from dev to tempDev
如果我要回退到HEAD@{0}
那么可以敲
git reset --hard 06c5153fc
pull
下来的时候可能会出现冲突
这时命令行会出现<branch>|MERGING
这时打开代码 把冲突的地方一个个改掉
就是手动改 一个一个改就得了
其实也还好 就是一片飘红看起来有点恐怖
>>>>>>> HEAD
// 本地改动的
Toast.makeText(MainActivity.this, "hello world", Toast.LENGTH_SHORT).show();
=======
// 远程改动的
Toast.makeText(MainActivity.this, "HELLO WORLD", Toast.LENGTH_SHORT).show();
<<<<<<< BRANCH
改完之后要merge
不过在merge
之前要查看改动了哪些地方
git status
因为是改动过的嘛 所以要重新添加并提交
git add .
如果想查看有没有全部add
进去的话 可以再敲一次
git status
因为add
完了 那肯定要提交 所以
git commit -m "xxxxxxxx"
这时可以查看状态 看看有没有没加进去的 或者没commit
的
git status
在push
之前务必把远程最新的代码拉下来 防止出问题
git pull
但是如果当前本地分支没有跟远程分支关联的话 git pull
并不知道要拉哪个分支的更新下来 会报错
按照系统的提示 可以将当前本地分支关联远程分支
git branch --set-upstream-to=origin/<branch> dev
然后重新pull
git pull
当然 如果不想更新的话 也可以写清楚是拉哪个分支
git pull origin <branch>
这个时候就可以push
了
如果前面关联了远程分支的话可以直接
git push
如果没有关联远程分支的话 要写清楚是哪个分支 当前的分支名要跟远程的分支名相同 否则会出问题
git push origin <branch>
如果这时候要新开一个分支做别的功能 那么创建并切换到该分支
git checkout -b <branch>(本地)
如果要创建本地分支并且关联到远程分支的话
git checkout -b <branch> <remoteBranch>
如果要查看本地有什么分支的话可以
git branch
如果要查看全部分支的话可以加上-a
其中远程分支会标红
git branch -a
如果要保存修改完的代码的话 就是前面的add
和commit
但是如果这个时候想把这个新分支(本地分支)合并到现在已有的分支(本地分支)上的话可以用merge
但是merge
之前要先把分支切换到已有分支(本地分支) 而不是留在新分支(本地分支)那里
切换完之后照例查看状态git status
以及拉最新代码git pull
将创建的新分支合并到已有分支(本地分支)上
命令行上当前所处的分支是已有分支<branch>
(本地分支)
执行命令
git checkout <branch>
git merge <newBranch>
合并完之后 如果想把那个没有用的新分支(本地分支)删去
那么先确保当前处在已有分支(本地分支)上
不然会报错 因为你现在处在一个已删除的新分支上是有问题的
git checkout <branch>
git branch -d <newBranch>
这时再查看分支git branch
一下就好了
查看日志可以用
git log