美文网首页
git的详细使用笔记

git的详细使用笔记

作者: 不掉头发的程序猿 | 来源:发表于2018-02-11 15:52 被阅读0次

    第一步:上传项目到码云上

    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查看命令历史,以便确定要回到未来的哪个版本。

    相关文章

      网友评论

          本文标题:git的详细使用笔记

          本文链接:https://www.haomeiwen.com/subject/mtoozxtx.html