git 常用使用及问题记录
1、打开bash,进入工程根目录(引用whaon的话:是和.classpath和.project同级的目录)。PS:我的系统是win7,在bash切换到E的命令是 cd /e;
2、运行 git init 初始化代码仓库(repository)
3、运行git add .将该目录下的所有文件全部提交到缓冲区
4、运行git commit -m "helloword init"将代码提交到HEAD,此时还没有提交到服务器
5、运行git remote add origin http://git.oschina.net/yourname/helloworld.git
6、git push origin master
其中第5和6步骤容易出现问题,lz就出现的问题和解决的方法列出
问题一:"NOT FOUND"
解决方法:正如前面所述,如果没有在osc@git 上创建空项目就会出现这个问题
问题二:"![rejected] master -> master (fetch first)"
解决方法:看他的关键提示fetch first , 通过lz尝试此问题顺利解决
问题三:"![rejected] master -> master (non-fast-forward)
解决方法:还是同样的提示,还是熟悉的味道自己看它的提示,哦,原来要我pull一下,好吧我就pull一下,结果说必须指定pull谁,最后通过尝试终于把东东提交上去了。
修正:"git pull remote master" 改为 "git pull origin master"
git 远程分支创建与推送
本地分支的创建
本地分支的来源为执行git checkout -b <branch name> 的那个分支
例如现在有两个分支,master和b1
master 分支下有一个commit:
commit1: add test1.c
b1分支下有两个commit:
commit2: add test2.c
commit1: add test1.c
如果在master分支下checkout,即:
git checkout master //进入master分支
git checkout -b frommaster //以master为源创建分支frommaster
git log后发现frommaster中有一个提交:
commit1: add test1.c
这说明他是从master分支为源头创建的
如果在b1分支下checkout,即:
git checkout b1 //进入master分支
git checkout -b fromb1 //以b1为源创建分支fromb1
git log后发现fromb1中已经有两个提交:
commit2: add test2.c
commit1: add test1.c
这说明他是从b1分支为源头创建的
远程分支的创建
从远程分支检出的本地分支,称为跟踪分支(tracking branch)。跟踪分支是一种和远程
分支有直接联系的本地分支。在跟踪分支里输入git push,Git 会自行推断应该向哪个服
务器的哪个分支推送数据。反过来,在这些分支里运行git pull 会获取所有远程索引,并
把它们的数据都合并到本地分支中来.
$ git remote add origin ssh://git@dev.lemote.com/rt4ls.git
$ git push origin master
这两个操作是等价的,第二个操作的第一行的意思是添加一个标记,让origin指向ssh://git@dev.lemote.com /rt4ls.git,也就是说你操 作origin的时候,实际上就是在操作ssh://git@dev.lemote.com/rt4ls.git。origin在这里完全可以理解为后者 的别名。
需要说明的是,默认情况下这条语句等价于提交本地的master仓库到远程仓库,并作为远程的master分支。
我从master分支创建了一个issue5560分支,做了一些修改后,使用git push origin master提交,但是显示的结果却是'Everything up-to-date',发生问题的原因是git push origin master 在没有track远程分支的本地分支中默认提交的master分支,因为master分支默认指向了origin master 分支,这里要使用git push origin issue5560:master 就可以把issue5560推送到远程的master分支了。
如果想把本地的某个分支test提交到远程仓库,并作为远程仓库的master分支,或者作为另外一个名叫test的分支,那么可以这么做。
$ git push origin test:master // 提交本地test分支作为远程的master分支
$ git push origin test:test // 提交本地test分支作为远程的test分支
如果想删除远程的分支呢?类似于上面,如果:左边的分支为空,那么将删除:右边的远程的分支。
$ git push origin :test // 刚提交到远程的test将被删除,但是本地还会保存的,不用担心
git远程分支的管理和代码提交
首先从远程代码仓库中克隆一份代码, 直接用git clone remote_repository,
假设远程代码仓库有2个分支, master和test分支, 默认是master分支, git clone会克隆远程的所有分支到本地(可以用git branch -r查看远程的所有分支). 然后checkout 到默认的一个分支上, 这里默认的分支是master
clone代码以后, 可以切换到远程的test分支, 使用
git checkout origin/test, 这时候当前git目录处于 'detached HEAD' state, 此时需要用git checkout -b new_branch建一个新的分支(从test分支为起点建), 然后就可以在new_branch分支上修改代码了, 比如我们加一个文件, test,.c, 然后 git add test.c, 然后git commit -a -s 以后就能像test分支提交代码了
git push origin HEAD:refs/for/test (git push origin HEAD:test)
ps:
在new_branch更新upstream上游的代码, 可用git pull origin test
git 本地会有一个master, 对应远程的master, 如果远程有一个alpha1.0分支, 本地也会有一个和远程alpha1.0对应的本地分支, 操作和master一样
关于如何在多个分支直接提交代码
比如, 有2个分支, master和alpha, 在master上提交代码以后, 得到一个本次提交的commit id, 如果想要将本次提交再提交一份到alpha, 可以先git checkout alpha,然后使用git cherry-pick commit-id, 再git push origin alpha即可
git 常用使用及问题记录的更多相关文章
- 记录 git 常用的操作命令总结
记录 git 常用的操作命令总结 2016-12-15 16:44:04 作为一名开发者,熟悉使用 git 代码管理工具是一项必备的基本技能.git 相较 SVN 而言,其优点不言而喻.git 的功能 ...
- npm git 常用命令行 记录
1. 推出node命令行: 两次ctrl+C或者一次ctrl+D 退出终端:exit; 2.npm 常用 npm install <name> 安装包 npm install &l ...
- Git 常用命令详解
Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) Git 的更多介绍 ...
- Git常用命令总结
Git常用命令总结 git init 在本地新建一个repo,进入一个项目目录,执行git init,会初始化一个repo,并在当前文件夹下创建一个.git文件夹. git clone ...
- GIT常用命令备忘
Git配置 git config --global user.name "storm" git config --global user.email "stormzhan ...
- iOS开发——源代码管理——git(分布式版本控制和集中式版本控制对比,git和SVN对比,git常用指令,搭建GitHub远程仓库,搭建oschina远程仓库 )
一.git简介 什么是git? git是一款开源的分布式版本控制工具 在世界上所有的分布式版本控制工具中,git是最快.最简单.最流行的 git的起源 作者是Linux之父:Linus Bened ...
- 转收藏:Git常用命令速查表
一. Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支git branch -r ...
- git常用命令,git版本控制和Xcode结合使用,用Xcode提交到github,github客户端使用
1.git常用命令 查看命令: 1.git --help 查看git所有命令 2.git clone -help 查看git clone命令的细节 3.git config -l 查看当前所有配置 ...
- Git 常用命令详解(二)
Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) Git 的更多介绍 ...
随机推荐
- java-jvisualvm远程监控tomcat
一.修改要访问的远程主机(Linux)相关文件,本文档只介绍了java-jvisualvm的JMX方式: 1.打开$CATALINA_HOME/bin/startup.sh, 找到倒数第二行(也就是e ...
- iOS 打包上传AppStore相关(3)-iTunes相应配置以及使用蒲公英网站进行应用托管分发(链接/二维码)
上一篇讲到我们最终生成了一个格式为 .xcarchive 的文件(可以右键并Show in Finder)查看.本篇我们就进行最后的设置,打包上传.另外,还有一个小福利,那就是打测试包分发链接测试. ...
- 利用commons-io.jar包中FileUtils和IOUtils工具类操作流及文件
1.String IOUtils.toString(InputStream input),传入输入流对象,返回字符串,有多重重载,可按需要传参 用例: @Test public void showIn ...
- Spark Streaming的wordcount案例
之前测试的一些spark案例都是采用离线处理,spark streaming的流处理一样可以运行经典的wordcount. 基本环境: spark-2.0.0 scala-2.11.0 IDEA-15 ...
- LSM树由来、设计思想以及应用到HBase的索引(转)
转自: http://www.cnblogs.com/yanghuahui/p/3483754.html 讲LSM树之前,需要提下三种基本的存储引擎,这样才能清楚LSM树的由来: 哈希存储引擎 是哈 ...
- html5权威指南:html base标签
html base标签:http://www.cnblogs.com/yuepeng/archive/2010/08/30/1812498.html
- 【2】Chrome - 快捷键
记录一下 Chrome 常用的快捷键 温馨提示:点击快捷键回链接到对应的图文 快捷键汇总: 1. Ctrl + [ 或 Ctil + ] ( Mac: Cmd + [ 或 Cmd + ] ): 移动 ...
- Hadoop故障排除:jps 报process information unavailable
4883 -- process information unavailable 解决办法: 进入tmp目录, cd /tmp 删除该目录下 名称为hsperfdata_{username}的文件夹 然 ...
- git config and options core.bare hard
In Lynda course Building a Web Interface with React.js 003 Using the exercises > git clone --bare ...
- JavaScript原生对象总纲
一. javascript之Array类 创建js数组两种方式: var arr = []; 或var arr = new Array(); ()里可以指定长度,也可以不指定,指不指定都无所谓,因为 ...