第一步:上传项目到码云上
1.建立本地git仓库
git init
2.将本地项目工作区的所有文件添加到暂存区
git add .
.表示所有文件
如果想添加项目中的指定文件那就把.改为指定文件名即可,执行后可以用git status来查看是否所有文件都已经上传到暂存区
1.如果有红色表示部分未上传,可以单个文件上传
2.如果全是绿色表示上传成功
3.将暂存区的文件提交到本地仓库
git commit -m ""
冒号里面写注释语句
4.在码云上创建自己的项目,得到远程仓库的地址
5.将本地仓库关联到码云上
git remote add origin https://gitee.com/feitiandexiaochengxuyuan/GitFenzhi.git
在这一步时如果出现错误:fatal:remote origin already exists 意思是路径存在了,就需要删除原来的路径从新添加
那就先输入 git remote rm origin
再输入 git remote add origin https://gitee.com/feitiandexiaochengxuyuan/GitFenzhi.git 就不会报错了。
6.本地仓库上传到远程仓库
git push -u origin master
如果报failed to push some refs to git 错误出现错误的主要原因是码云中的README.md文件不在本地代码目录中
可以通过如下命令进行代码合并【注:pull=fetch+merge]
git pull --rebase origin master
此时再执行语句 git push -u origin master即可完成代码上传到github
第二步:分支的建立
1.分支创建(本地创建)
(1)本地创建分支
git checkout -b develop
(相当于$ git branch dev
$ git checkout dev
)
(2)查看本地分支
git branch
(3)切换本地分支
git checkout master
(4)删除本地分支
git checkout -b develop
(5)把本地分支同步到码云上(当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin)
查看远程仓库:
git remote
将本地分支推送到远程仓库
git push origin develop
注:并不是一定要把本地分支往远程推送,那么,哪些分支需要推送,哪些不需要呢?
master分支是主分支,因此要时刻与远程同步;
dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;
bug分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug;
feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发。
2.远程创建(也就是拉取他们的分支)
(1)
(2)拉取下来
git checkout -b origin/dddd
3.git的操作
(1)提交到暂存区
git add .
git commit -m "第一次修改"
此时提交后切换到默认分支,可以看到修改并没修改
(2)此时推送到远程仓库
git push origin origin/dddd
推送失败,因为你的小伙伴的最新提交和你试图推送的提交有冲突,解决办法也很简单,Git已经提示我们,先用git pull把最新的提交从origin/dev抓下来,然后,在本地合并,解决冲突,再推送:
因此,多人协作的工作模式通常是这样:
首先,可以试图用git push origin branch-name推送自己的修改;
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name。
这就是多人协作的工作模式,一旦熟悉了,就非常简单
4.合并分支
一般使用普通合并
(1)回到开发分支,然后合并分支
git merge --no-ff -m "merge with no-ff" origin/dddd
(2)然后提交修改到远程仓库就好
(3)此时删除分支
5.分支分类
(1)bug分支:
1.1
bug就像家常便饭一样。有了bug就需要修复,在Git中,由于分支是如此的强大,所以,每个bug都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除。并不是你不想提交,而是工作只进行到一半,还没法提交,预计完成还需1天时间。但是,必须在两个小时内修复该bug,怎么办?
幸好,Git还提供了一个stash功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作:
当你接到一个修复一个代号101的bug的任务时,很自然地,你想创建一个分支issue-101来修复它,但是,等等,当前正在dev上进行的工作还没有提交
git stash
此时你查看工作区:git status 就很干净了
2.2
创建bug分支
git checkout -b issue-101
然后提交分支
git add .
git commit -m "23"
然后切换到master完成合并
git checkout master
git merge --no-ff -m "merged bug fix 101" issue-101
然后删除bug分支
git branch -d issue-101
然后提交代码到远程上
git push origin master
最后回到develop上继续开发
此时你可以看看你的工作区存的位置
git stash list
工作现场还在,Git把stash内容存在某个地方了,但是需要恢复一下,有两个办法:
一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;
另一种方式是用git stash pop,恢复的同时把stash内容也删了
(2)Feature分支:添加一个新功能时,你肯定不希望因为一些实验性质的代码,把主分支搞乱了,所以,每添加一个新功能,最好新建一个feature分支,在上面开发,完成后,合并,最后,删除该feature分支。
git checkout -b feature
开发完毕后你可以提交并回到develop上进行合并
git add .
git commit -m "gg"
git checkout develop
git merge --no-ff -m "feature01" feature
最后删除
git branch -Dfeature-vulcan
6.标签
1.给发布用的master打标签
git checkout master
git tag v0.1
查看所有版本
git tag
默认标签是打在最新提交的commit上的。有时候,如果忘了打标签,比如,现在已经是周五了,但应该在周一打的标签没有打,怎么办?
方法是找到历史提交的commit id,然后打上就可以了
git log --pretty=oneline --abbrev-commit
git tag v0.9 8d27cc5
2.删除标签
git tag -d v0.1
3.推送标签
推送指定标签
git push origin v1.0
推送所有标签
git push origin --tags
4.推送后的标签删除
先从本地删除
git tag -d v0.9
然后,从远程删除。删除命令也是push,但是格式如下:
git push origin:refs/tags/v0.9
7.版本回退
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。
穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
网友评论