Git工作流使用过程学习【工具:Git+SourceTree】

Git workflows

工具:Git + SourceTree

官网下载地址

Git官网:http://git-scm.com/downloads

SourceTree官网:https://www.sourcetreeapp.com/

———————————————————————————

流程:

——————————————————————————

1、首先你需要有一个本地的SSH秘钥,有的话跳过此步。

git 命令行上输入

       $ssh-keygen -t rsa -C “邮箱名...

按三次回车,即密码设置为空。

然后能够得到两个文件id_rsa.pubid_rsa存放在.ssh文件夹中。

(没记错的话.ssh文件夹生成的位置在当前命令行上可以看得到)

Git工作流使用过程学习【工具:Git+SourceTree】_第1张图片

如果是要上传到Github的话,打开id_rsa.pub,将里面的信息添加到你githubSSH上。

Git工作流使用过程学习【工具:Git+SourceTree】_第2张图片

id_rsa则是下一步要用到的。


 ——————————————————————————————————————————

2、打开SourceTree设置用户名和邮箱,SSH选择上一步获得的id_rsa文件)。

 Git工作流使用过程学习【工具:Git+SourceTree】_第3张图片

对应的命令行下为:

git config --global user.name “.....”

git config --global user.email “.....”

 Git工作流使用过程学习【工具:Git+SourceTree】_第4张图片

 

————————————————————————————————————

3、开始获取远端工程

点击SourceTree上的“克隆/新建”,将项目的SSH地址输入:

 Git工作流使用过程学习【工具:Git+SourceTree】_第5张图片

点击“克隆”后再点击“获取”即可将工程克隆到本地。

对应GIT命令行:

  git clone [email protected]:Yellow5A5/MTTT.git

 

——————————————————————————————————

4、修改代码后点击提交,选择需要提交的文件(推送可以参考第六步,有重合)。

提交后代码保存在了本地的仓库,需要再通过“推送”将其推到远端工程。

git status 查看改动的地方

git add ~~~ 添加进暂存库

git commit ~~~ 提交到本地库


git push ~~ 推送

git diff 可以通过这个命令查看改动具体点


—————————————————————————————————

5、分支操作

SourceTree就直接点击“分支”/“工作流”进行一系列操作,较简单,不详述。

Git命令行下:

查看当前分支  git branch -av

Git工作流使用过程学习【工具:Git+SourceTree】_第6张图片

命令行下 git checkout -b ~~~ 建立一个新分支并切换到该分支,

也等同于git branch ~~~ 和 git check ~~~ 两个命令组合。

Git工作流使用过程学习【工具:Git+SourceTree】_第7张图片

在newbranch分支上对feature3.txt内容进行了修改:

Git工作流使用过程学习【工具:Git+SourceTree】_第8张图片

功能做好了再通过git checkout master 切换到主分支或自己的分支,

再通过git merge ~~~ 合并 ~~~ 分支到当前的分支,完成合并。

 Git工作流使用过程学习【工具:Git+SourceTree】_第9张图片

此时去查看feature3.txt是更改后的内容了。

这时候如果觉得分支没用了可以通过 git branch -d ~~~ 删除分支 (如果是未合并的分支用大写D强删)

Git工作流使用过程学习【工具:Git+SourceTree】_第10张图片

再看看分支,是的,已经删除了。


——————————————————————————————————

6、推送

现在我们将刚刚改动了文件上传到远端:

点击SourceTree上的“推送”,然后选择要推送到的分支就可以了。

命令行下则需要三个命令:

(可以调用git status查看变化了的文件是什么)

git add feature3.txt

git commit

git push origin master

Git工作流使用过程学习【工具:Git+SourceTree】_第11张图片


————————————————————————————————

7、更新代码:

⑴git pull ...  拉取后自动合并。

 

⑵git fetch ... 拉取后不会自动合并,需要手动merge,更安全,可以在合并前再查看更新情况考虑是否合并。

查看远程库与当前master的修改:

git diff master origin

 

——————————————————————————————————

8、回滚版本:

git log 、git relog。查看命令,用于查找回退的操作的id。

Git工作流使用过程学习【工具:Git+SourceTree】_第12张图片

Git工作流使用过程学习【工具:Git+SourceTree】_第13张图片

  一般我们可能不需要知道这么详细的信息,所以通过git reflog来获取操作命令过的版本id比较方便,我们回滚文件时并不需要那么详细的id,只需要前面部分数字就好,git会自动帮我们匹配到正确的版本号。


提供一个自定义查看log的信息的样式(复制粘贴就好):

  git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --"

定义以后输入:

  git lg

Git工作流使用过程学习【工具:Git+SourceTree】_第14张图片

效果好看很多了吧。

当然,SourceTree上面看应该会更爽一点:

Git工作流使用过程学习【工具:Git+SourceTree】_第15张图片

知道了版本id以后我们就可以试试版本回退的功能了,你需要知道的命令:

  git reset 回退到上一次操作

  git reset --hard ~~~id 回退到之前某次操作

直接开始吧:

  git reset --hard a061c28

然后再查看现在的版本状态:

Git工作流使用过程学习【工具:Git+SourceTree】_第16张图片

是的,已经成功回退到之前的版本了。

然而回退后如果又后悔了,不想回退了,你可以通过git reflog查看操作过的命令的版本。

Git工作流使用过程学习【工具:Git+SourceTree】_第17张图片

a061c28就是我们当前的版本。

2ba0cbc 是回滚前的版本。

git reset --hard 2ba0

输入后即可。



一些其它指令:

git ls-remote 查看远程分支(git remote show ~~~)

git reset   撤销某次操作,commit操作保留

git revert  撤销某次提交,将之前的commit操作退回暂存区

 


建议好好熟悉命令行,熟悉以后就不用依赖SourceTree了。

当然,结合使用感觉也很挺好。


你可能感兴趣的:(Git)