最近好久不用git,用法都忘记了,再次总结一下
http://blog.csdn.net/gjswxhb/article/details/23221197
1:首先,跳转到项目根目录
cd /Work/jkbs_ios
2:查看当前状态
git status
3: 把我们要提交的文件的信息添加到索引库中
git add .
4: 提交文件
$ git commit -m '各种注释'
5:合并到远程代码库(首先要将远程库,pull到本地,否则不能push)
git pull
git push
如果系统中有一些配置文件在服务器上做了配置修改,然后后续开发又新添加一些配置项的时候,
在发布这个配置文件的时候,会发生代码冲突:
error: Your local changes to the following files would be overwritten by merge: protected/config/main.phpPlease, commit your changes or stash them before you can merge.
如果希望保留生产服务器上所做的改动,仅仅并入新配置项, 处理方法如下:
git stashgit pullgit stash pop
然后可以使用[Git](http://lib.csdn.net/base/28) diff -w +文件名 来确认代码自动合并的情况.
反过来,如果希望用代码库中的文件完全覆盖本地工作版本. 方法如下:
git reset --hardgit pull
其中git reset是针对版本,如果想针对文件回退本地修改,使用
git checkout HEAD file/to/restore
Git 常用命令
基本操作
* 初始化仓库 git init
* 查看仓库状态 git status
* 向暂存区中添加文件 git add
git add . 添加全部
git add readme.md 添加单个文件
提交记录 git commit
1. git commit 提交详细信息
2. git commit -m "content" 提交简短信息
3. • 查看提交日志 git log
4. git log 查看全部日志
5. git log filename 查看指定文件的日志
6. git log -p 查看日志中显示文件的具体改动
7. • 查看更改前后的差别 git diff
8. git diff 查看工作树和暂存区的差别
9. git diff 分支名 查看当前分支和对比的分支的区别
分支的操作
* • 显示分支一览表 git branch
* • 创建分支 git branch 分支名
* • 切换分支 git checkout 分支名
* • 创建并切换分支 git checkout -b 分支名
* • 删除分支 git branch -d 分支名
* • 切换回上一个分支 git checkout -
* • 合并分支 git merge
1. 首先切换回 master 分支,git checkout master
2. 创建合并 git merge --no-ff 分支名,--no-ff 意为记录下本次分支合并
3. 录入合并提交信息,并保存,这样就合并成功了。
更改提交操作
* • 回溯历史版本 git reset
要让仓库的 HEAD、暂存区、当前工作树回溯到指定状态,需要 git reset --hard 目标节点的哈希值。
git log 只能查看当前节点为终点的历史日志,因此你可能需要 git reflog,查看当前仓库的操作日志。
从日志中找到需要回溯节点的哈希值,并用 1 的命令执行回溯。
解决冲突
* • 发现冲突,用编辑器解决冲突
* • git add 冲突文件名 添加文件
* • git commit -m "fix conflict" 提交冲突解决
* • git commit --amend 修改上一条提交信息
* • git rebase -i HEAD~2 压缩历史
* • 该命令会选定当前分支中包含HEAD(最新提交)在内的两个最新历史纪录为对象,并在编辑器中打开。
* • 将需要合并的前面的 pick 修改 fixup。
远程仓库
* • 添加远程仓库 git remote add
* • git remote add origin 远程仓库地址 为本地的仓库设置他的远程仓库地址。
* • 推送至远程仓库 git push
* • 将本地设置了远程仓库后,第一次push,需要这样 git push -u origin master
* • 获取远程仓库 git clone 地址
* • 获取远程分支 git checkout -b 本地新建分支名 远程分支名
* • 本地应于远程的同名,远程的分支名前需要带上 origin/
* • 获取最新的远程仓库分支 git pull origin master
或者直接 git pull 即可。
问题1:如何解决 failed to push some refs to git
参考:https://jingyan.baidu.com/article/f3e34a12a25bc8f5ea65354a.html
在使用git 对源代码进行push到gitHub时可能会出错
出现错误的主要原因是github中的README.md文件不在本地代码目录中
可以通过如下命令进行代码合并【注:pull=fetch+merge]
git pull --rebase origin master
问题二:fatal: remote origin already exists
1、先删除远程 Git 仓库
git remote rm origin
2、再添加远程 Git 仓库
git remote add origin git@github.com:FBing/[Java](http://lib.csdn.net/base/17)-code-generator