这篇文章主要记录的是自己踩过的坑,一步一步试验出来的经验
首先是我们新建一个文件夹,作为本地仓库的总文件夹。
我的是G:\git-repository。
然后拷贝一份文件到该目录下
我的是一个git-test项目G:\git-repository\git-test,里面含有三个模块如下
然后在G盘目录下,打开git-test项目,点击git bash here。
第一种情况git 直接push自己本地代码到仓库,没有与他人合作的分支
第一步,先初始化
git init // 此时查看隐藏文件,会出现.git文件
第二步,添加到本地仓库暂存区
git add . // 这个是把git-test项目都添加,如果只添加具体的需要如下命令行
git add test.txt //指定文件夹
第三步,提交说明
git commit -m "第一次使用git"
第四步,在自己的云仓库建立代码,复制仓库的https地址,进行本地仓库与云仓库相关联
我的是华为云的仓库,新建仓库就有了一个默认分支master,以及README.md, .gitignore 文件。使用下面命令行
git remote add origin <url> //<url> 就是自己复制的仓库https地址,origin就是远程仓库的别名,方便后面的操作
第五步,也是关键的一步,先进行拉取,以后都是先拉取pull最新的代码,才有push到远程仓库
git pull --rebase origin master
最后一步,就是git push,上传到代码仓库
git push -u origin master
打开自己的云仓库,就会发现已经成功了。
第二种情况,团队合作,云仓库有两个branch,但是想要在某一分支开发,并且不冲突的提交
目前,团队代码,其他人员已经开发了两个分支,并且已经上传到云仓库,如下图。hello-git和master
第一步,我们可以直接clone 仓库的https,到自己的本地仓库目录中
默认是在远程仓库的master分支,我们可以git checkout hellogit 转换到hellogit分支,两个分支文件不一样,在开发时,一定要切换的要更改的分支下开发。以下假定我们是在hellogit开发,
因为我们是开发单独分支,肯定这个分支只有自己会去修改该分支并提交,可能刚开始,我们会疑惑开发该期间,别人提交到master数据改变了,影响我们开发完的提交吗,答案是不影响的,只要我们一直git checkout hellogit,最后
git push -u origin hellogit //push到远程的hellogit仓库,origin就是仓库名
就可成功。push完成后,需要切换到master 分支下,在进行git pull操作更新整体的代码,一定不要忘记,这样本地仓库,所有分支就完全update了。
第三种情况,没有git clone 直接本地init 一个仓库,需要注意的地方,还是以上面的test5仓库为例
先 git init
大部分初学者都会迫不及待的git remote add origin
这个是错误的
如图,git branch 也没有分支,git checkout自然也是不行。
此处与git clone不同,该方法没有直接pull 最新的,并且没完成本地分支与远程分支的关联。接下来我将
git pull origin hellogit //在当前分支,默认本地仓库分支master,pull远程的hellogit分支
结果如下
来回切换了master和hellogit分支,文件其实没有变。后续push到远程的分支,也会迷糊,推荐如下方法,可以应对各种坑:
git init
然后在该目录下新建一个read.txt文件夹
git add .
git commit -m "xintijiao" //这个操作是能够后面创造本地分支准备,没有这两部,无法git branch 《分支》
如果直接git init过后,再git branch hellogit 会报错,如下
fatal: Not a valid object name: ‘master’.
提交了read.txt文件的更改到本地暂存区,就可以
git branch <分支名> //强烈建议此处分支名与远程仓库想开发的分支名一样
git checkout <分支名> //切换到该新分支,再进行与远程仓库关联
git remote add origin <url> //然后进行pull 远程想开发的分支,到本地的同名分支下
git pull origin hellogit --allow-unrelated-histories //后面这一串一定要加,否则会报如下错误,运行这个命令行会弹出一个文档,保存退出即可
git push -u origin hellogit //开发完后,就可以愉快地git push 到hellogit了
fatal: refusing to merge unrelated histories
以上就是我的一些采坑经验,大家也可以利用自己没用的代码仓库多测试几种自己疑惑的地方,欢迎大家和我交流,有不完善的地方可以指出来
最后总结 直接 git init
然后 git remote add https
然后 git pull origin 分支
然后 git checkout 分支 --。
最后第二个总结 如果出现(merging)
直接git reset merge(此时情况是本地版本和仓库不一样,想以本地的为基准 )
然后git rebase(重新定义基准线)
然后git push