之前都是使用svn的。近期公司有个项目需要使用git。就学习了一下。在这里记录一下。
- 将原项目fork到自己的仓库
- 通过 git clone url(远程仓库的url)克隆到本地
- 创建本地分支并切换
git checkout -b ‘本地分支名’ origin/(远程分支名)
这个操作完成之后就可以在本地进行开发了。
- 需要提交的时候
前言:这里的提交是要先提交到我们自己的仓库,然后在合并到原有项目的仓库,所以我们需要先将原有仓库的代码拉取到本地,之后提交到我们自己的仓库,再从我们的仓库合并到原有项目的仓库。
1.添加原有项目的远程仓库:git remote add ‘远程仓库名’(给远程仓库起一个名字) url(远程仓库的url)
查看所有的远程仓库的命令: git remote -v
删除远程仓库的命令:git remote rm 远程仓库的名字
2.先git status 查看本地仓库是否有改变,有改变需要先提交,在进行第三步
3.更新原有项目的远程仓库的代码:git fetch 远程仓库的名字 (从远程仓库更新代码)
(执行该命令有可能会更新失败,提示我们commit代码,这个时候我们先提交, 之后fetch 就可以了)
3.git merge 远程仓库的名字/分支名,这时会出现冲突图标。然后进入冲突文件,解决从原有仓库更新下来的代码的冲突。
4.手动修改冲突文件:进入文件
<<<<<<< HEAD
你的
仓库里的
>>>>>>> feature1
对比代码,保存修改。
5.解决完之后,记得要点小乌龟的解决冲突的选项。
6.使用命令git status 查看还有什么问题没,若没有就 git commit -m ‘输入提交信息’
7.将代码同步到自己的仓库
git命令:git push origin(分支名称)
代码提交到自己的仓库之后,进入git网站,将自己仓库的代码合并到原有仓库。
下图第一个下拉框选择你提交的分支。之后点击new pull request 发起合并请求吧。之后再找管理项目的leader来合并一下。就ok了。
git的回退操作:
首先查看版本log日志的命令:git reflog
回到到指定版本的命令:git reset --hard 24cb6e1e3
整理了一些git的常用命令:
强制push代码到远程仓库:git push -f origin master
切换已有分支:git checkout ‘分支名‘
查看分支:git branch
存储代码:git stash
清除存储代码:git stash clear
查看存储代码列表:git stash list
查看提交日志: git log
删除本地分支:git branch -D 分支名
删除远程自己fork分支:git push origin --delete 分支名
创建分支命令:
git fetch 远程主仓库别名 分支名:分支名
git checkout 分支名
git push origin 分支名
删除分支:
删除远程自己fork分支:git push origin --delete 分支
删除本地分支:git branch -D 分支
git分支合主干
DEV_A ----> DEV_B 示例:
-- 提交分支代码
git checkout DEV_A
git fetch upstream DEV_A
git merge upstream/DEV_A
*:如何有冲突,解决冲突,在add to index,commit
--更新要merge的分支到最新
git checkout DEV_B
git fetch upstream DEV_B
git merge upstream/DEV_B
*:如果有冲突,解决冲突,再add to index,commit
git merge DEV_A //注意:merge语句是将语句中的分支,合并到当前分支来
git push origin DEV_B
new pull request
常见错误解决:
一般clone代码的话。网速比较慢。就会很坑。因为git不能断点续传。同时git clone超过一定时间就会报错。
这个错误是由于下载仓库时间过长导致的,只需要在config增加一个配置。增加配置命令如下:
git config http.postBuffer 524288000
如果这个方法不行的话。要么是公司网有问题。。网速不够。可以开wifi或者回家用自家网吧。
git 更新版本
git ---version 查看版本
git update-git-for-windows 更新版本
这里有个错误要注意一下。我一般是开着eclipse会这样。关掉eclipse就可以了。先更下来代码。在启动eclipse吧。