Git 工作流

Git 工作流及其上传远程库的一些操作(基于git -bash 命令行)


一,创建本地库并提交文件(如下图):

       1. 在f盘下新建gitdemo文件夹,以下所有操作基于该文件夹

        2.  建demo1文件夹,并新建test.txt,里面加一行git repo1文字

        3. cd gitdemo1 进入该文件目录,git init 初始化该文件目录为git 管理的仓库。

        4. 然后git add 文件名 添加到暂存区,git commit -m "commit message" 提交到本地仓库。


Git 工作流_第1张图片
创建本地库并提交

二, 工作流(如下图)

    1. 工作目录下新建demo2

    2. 初始化本地库demo2

    3. 在demo2下新建一个bash_demo.txt(表示第一天需求)并提交

Git 工作流_第2张图片
初始化本地库demo2
Git 工作流_第3张图片
提交bash_demo需求
Git 工作流_第4张图片
提交完成

4. 现在修改bash_demo中的需求,并添加到本地库暂存区

5. 可是现在面临一问题:上一步修改的需求不需要啦,回到第一步的bash_demo的需求,这时就需要其他操作(如下)

6. git reset HEAD bash_demo 回退暂存区的添加到上一次commit

7.这时git status 就会发现在master主分支上,no staged for commit >> 暂存区没有提交,这就表明暂存区已经没有上一次改动的需求啦, 但是此时的工作区还是第二次修改的需求,那怎么回退工作区的内容呢?(看下一步)

8. git checkout -- bash_demo.txt     >>   回退工作区的改动

Git 工作流_第5张图片
工作流

9. 上一步中是仅仅把工作区的修改提交到暂存区,如果提交到本地库怎么办呢?

Git 工作流_第6张图片
提交回退

10. git log     >>    查到各个commit 的唯一id

11. 得到第一次提交的commit id 

12. git reset --hard commit id   >>   回退到你指定的commit版本

Git 工作流_第7张图片
commit回退

13. 这时git status 就可以发现本地库已经回退到第一次需求中

14. 如果此时你的PM跟你说这次的需求不用做啦(该死的PM), 你需要在你的本地库中删掉所有的提交包括需求文档

15. git rm  bash_demo.txt    >>   删除demo2下的bash_demo.txt文档(可是并没有删除本地git库中的提交)

16. git commit  -m "commit message"   >>   提交删除,这样本地库中的bash_demo.txt 提交就已经被删除啦

17. OK 简单的工作流模拟完成

Git 工作流_第8张图片
删除commit

三, 提交到远程仓库(github为例)
    1. 首先你需要在注册一个github账号              链接

    2. 因为git本地库和github远程库传输需要SSH协议(或者Http),所以在github中配置你的SSH Key ,而git安装完成后在C/Users/Administrator/ 下,有一个文件夹 .ssh/ , .ssh下有一个叫 id_rsa.pub , 复制里面的内容,放在自己github配置中。

Git 工作流_第9张图片
github中配置
Git 工作流_第10张图片
查看SSH

3. gitdemo下新建demo3工作目录,添加一个README.md ,并初始化为git仓库

4. t添加提交到本地库

5. 关联远程库   >> git remote add origin [email protected]:*******/***.git,注意在关联之前,你需要在github中new 一个仓库,并得到它的地址,不然无法关联

6. git push -u origin master   >>   git push 表示提交到远程库,-u origin master 表示提交同时关联本地库master分支和远程库master分支(origin 一般表示远程仓库名,你也可以取其他名字)

Git 工作流_第11张图片
上传到远程库
Git 工作流_第12张图片
上传

7. vim README.md    >>   修改readme.md文件,加上一句second commit  

   *  注意vim 命令 进入命令页面,按下(i ,l)切换到插入界面,按下esc,回到命令界面,按下shift输入命令行 , :wq  保存并退出,回到git 命令行

8. 提交修改,并push到远程库,这是就不需要 -u 后面的一串东西啦

Git 工作流_第13张图片
修改并提交

四,克隆和标签

1. git clone 远程仓库地址   >>   从远程仓库clone到本地目录(注意是本地目录,就是没有经过git init的干净文件目录,如果不是干净的目录,则会有错误,因为该本地库并不和远程库相互关联并同步)

2.新建sc_clone 目录并初始化,echo "new code " >> test 并向test中追加一些东西,提交并push到远程库。

Git 工作流_第14张图片
标签
Git 工作流_第15张图片
提交
Git 工作流_第16张图片
push

3. git tag name   >> 为该本地库打标签,git tag 查看所有标签

4. git push origin tagname 提交到远程库

Git 工作流_第17张图片
打标签并提交到远程库

五, 分支

      1.  新建branch_demo 目录,并初始化,echo "first branch demo" 到branch.txt中,并提交

Git 工作流_第18张图片
Git 工作流_第19张图片
新建branch_demo,并初始化
Git 工作流_第20张图片
添加内容
Git 工作流_第21张图片
添加提交

2. 此时所有的工作都是在master主分支上,正常工作,我们需要自己新建一个分支,在上面工作,然后合并到主分支上(这就是git的强大之处)

3. git branch feature_x   >> 新建分支feature_x

4. git branch  >>  查看分支可以发现此时还在master上 ,,git checkout feature_x  切换到某一点分支。

Git 工作流_第22张图片
切换分支

5. 修改内容并在feature_x分支上提交修改。

6. 切换到master分支,并把刚才feature_x合并  >> git merge feature_x

7. 此时查看txt文件的内容,发现已经修改

Git 工作流_第23张图片
修改内容并在feature_x分支上提交修改

8. git branch -d feature_x    >> 删除无用分支(该分支已经做完工作,可以删掉)

Git 工作流_第24张图片
删除分支


  该文章只是在学习中的一些小见解和积累,如有错误请见谅

引用视频及文章:https://www.imooc.com/learn/1052

你可能感兴趣的:(Git 工作流)