官网下载地址
Git官网:http://git-scm.com/downloads
SourceTree官网:https://www.sourcetreeapp.com/
———————————————————————————1、首先你需要有一个本地的SSH秘钥,有的话跳过此步。
在git 命令行上输入
$ssh-keygen -t rsa -C “邮箱名...”
按三次回车,即密码设置为空。
然后能够得到两个文件id_rsa.pub和id_rsa存放在.ssh文件夹中。
(没记错的话.ssh文件夹生成的位置在当前命令行上可以看得到)
如果是要上传到Github的话,打开id_rsa.pub,将里面的信息添加到你github的SSH上。
id_rsa则是下一步要用到的。
——————————————————————————————————————————
2、打开SourceTree,设置用户名和邮箱,SSH(选择上一步获得的id_rsa文件)。
对应的命令行下为:
git config --global user.name “.....”
git config --global user.email “.....”
————————————————————————————————————
3、开始获取远端工程:
点击SourceTree上的“克隆/新建”,将项目的SSH地址输入:
点击“克隆”后再点击“获取”即可将工程克隆到本地。
对应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 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 --"
知道了版本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了。
当然,结合使用感觉也很挺好。