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

来源:互联网 发布:centos 6.5 计划任务 编辑:程序博客网 时间:2024/05/17 08:27

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文件夹生成的位置在当前命令行上可以看得到)


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


id_rsa则是下一步要用到的。


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

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

 

对应的命令行下为:

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

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

 

 

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

3、开始获取远端工程

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

 

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

对应GIT命令行:

  git clone git@github.com:Yellow5A5/MTTT.git

 

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

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

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

git status 查看改动的地方

git add ~~~ 添加进暂存库

git commit ~~~ 提交到本地库


git push ~~ 推送

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


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

5、分支操作

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

Git命令行下:

查看当前分支  git branch -av


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

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


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


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

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

 

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

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


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


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

6、推送

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

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

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

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

git add feature3.txt

git commit

git push origin master



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

7、更新代码:

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

 

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

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

git diff master origin

 

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

8、回滚版本:

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



  一般我们可能不需要知道这么详细的信息,所以通过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


效果好看很多了吧。

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



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

  git reset 回退到上一次操作

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

直接开始吧:

  git reset --hard a061c28

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


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

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


a061c28就是我们当前的版本。

2ba0cbc 是回滚前的版本。

git reset --hard 2ba0

输入后即可。



一些其它指令:

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

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

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

 


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

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


1 0
原创粉丝点击