由于工作需要,接触到git,刚开始的时候一头雾水,碰到过许多错误和冲突,重拉过好多次完整项目(很费时),现在虽然大部分错误可以避免,但是还是还是会遇到不常见的情况,以后记录下这些情况的解决方法以备不时之需。
先记录 git 常用命令之我的理解
git merge 用于合并分支到当前分支上 例如: git merge bai 把bai分支合并到现在我处于的分支上
合并分支时加上--no-ff参数则可以用普通模式合并分支,而默认方式fast forward模式合并分支
在删除分支后,分支信息会被丢掉。
git checkout -b <name> 创建并切换到某分支上
git checkout -b <name> remotes/origin/name 创建并切换到name分支并关联到远程的name分支
git branch -d <name> 删除某分支 -D 强行删除某一没被合并的分支
git branch -a 查看本地和远程的所有分支
git branch -vv 查看当前分支跟踪是远程哪个分支
git push origin --delete remote_branch 删除远程分支
git remote prune origin 用来删除多余的本地分支(远程分支已经被删除)
git commit -m " " 以双引号里的内容为每次的提交信息提交修改(提交到本地的当前分支)
git log 查看提交历史(可以看到别人提交的log)
git reflog 查看本地命令历史
git log --graph 可以看到分支合并图
gitk 当前工作区状态的图形化展示
git stash 隐藏工作现场 (感觉这个比较有用,当你还没完成任务,而又需要切到其他分支时,这个命令派上用场)
git stash apply/pop 恢复工作现场,两者的区别是apply不会删除保存的工作现场。
git push origin <name> 把本地分支提交到远程对应分支(这是本地分支已经和远程分支做过关联时可以这么用,命令可以简化为git push )。
git push origin local_branch remote_branch 把本地分支提交到远程对应分支(本地分支和远程分支没有做过关联,并且远程没有该分支 )
git tag v1.0 给当前分支打版本标签。
git reset --hard HEAD^ HEAD表示当前版本。HEAD~100 表示往前的第100个版本(hard会丢弃掉更改)
--soft (soft会保存你本地的修改,并回退到commit之前)
--mix (默认模式 修改也会保存,但是不会被标记成"Changes to be committed)
git reset HEAD file 把暂存区的修改放回工作区。
git checkout --file 丢弃掉工作区的修改.
git rm 删除远程库中的文件(在本地删除过文件 要执行这个命令把对应远程库中的文件也删除)
git submodule update --init 初始化子仓库
Repo 不是很理解,这里先贴一下别人的博客的讲解
repo init -u gitserver:manifest.git -m mainfest.xml (同步repo管理的项目列表,并写到mainfest.xml中)
repo sync 同步代码(mainfest中记载的所有项目代码)
repo start master -all (把所有模块都归为当前master分支下)
repo branch 查看当前项目代码所在的分支
repo abandon 分支名 删除不用的本地分支
repo forall -c git status对所有项目执行一个git status命令
repo diff 显示提交的代码和当前工作目录代码之间的差异。
repo prune 删除已经merge 的 project
repo status 显示 project 的状态
这里以后贴一些遇到的错误以及解决方法.