git 使用

SourceTree 使用

 

1.    创建项目

 a. 通过本地的file system: 就是在本地已经有了git项目,然后直接导入即可。可以找到需要的本地项目然后直接拖曳或者选择“addworking copy”绝对路径搜索添加都可以找到.

b. clone url或者是创建新的: 就是获取有效的git项目url后选择“clone repository”来下载工程到本地.

2.常用按钮

       a. commit:提交代码改动

       b.checkout:会切换不同的本地working copy

       c.add:这个功能是将选择的未跟踪文件加入到source control中的版本跟踪控制中去

       d. remove:移除掉本地working copy中的选择的文件使其不被跟踪和控制

       e. pull:下载最新的代码更新到你当前的分支中去

f.push:上传代码,这个会弹出框体可能目前存在的多个可以提交的分支,注意只勾选需要提交的分支选项。

g. branch:创建新的分支

h. merge:将更改合并到当前分支

3.使用

传统姿势:先git add filegit commit -m"xxx"

快速提交当前所有文件的更改:gitcommit -am "xxx"会先add所有的更改然后提交

快速提交单个文件的更改:gitcommit file -m "xxx"只提交这个文件的更改

l  修改最后一次提交:git commit --amend -am "xxx"将当前的更改加入最后一次 commit 中并更改最后一次commit的信息。

l  新建一个名为“xxx”的分支并切换过去: git checkout -b xxx

l  切换到xxx分支:git checkout xxx

l  比较两个分支或commit: git diff  xxx xxx

l  取消 commit : gitreset --soft HEAD~

l  取消 add: git reset

l  强制恢复到指定状态: gitreset --hard xxx

l  HEAD发生的所有变化表: git reflog

l  两个commit复制到了当前分支上:git cherry-pick 0bda20e 1a04d5f

l  将分支branch3合并到master分支上: git merge branch3

l  放弃这次rebase:git rebase –abort

 

 

总结一下commit的几种姿势:

1.    传统姿势:先git add filegit commit -m "xxx"

2.    快速提交当前所有文件的更改:git commit -am "xxx"会先add所有的更改然后提交

3.    快速提交单个文件的更改:git commit file -m "xxx"只提交这个文件的更改

4.    修改最后一次提交:git commit --amend -am "xxx"将当前的更改加入最后一次commit中并更改最后一次commit的信息。其实观察可发现新的commit是替换了原先的commit,因为commithash已经变了。

 

总结一下checkout的几个功能:

1.分支相关操作:git checkout 分支名/commit hash切换到相应的分支或commit,加上-b参数则会创建分支并切换过去

2.恢复文件相关操作:git checkout [分支名/commit hash/HEAD快捷方式] -- 文件名恢复指定分支的最新commit或指定commit或快捷方式指向的commit的文件到工作目录,若省略中间的参数,则

n  暂存区有内容且暂存区内容与工作目录不同,则恢复暂存区的状态到工作目录

n  暂存区无内容,则恢复HEAD(最新的commit)的状态到工作目录

 

总结一下diff的各种情况:

1.  git diff source target返回的结果是target相对于source的变化,这里的sourcetarget可以是commithash/分支名/快捷方式

2.  如果只给一个参数,则这个参数就是source,而默认的target是工作目录,如果工作目录clean的话,则target为当前所在分支的最新commit

3.  如果一个参数都不给,默认的source是暂存目录,而target还是工作目录

4.  如果想要使暂存目录作为target的话,需要使用--cached参数

5.    在继续往下走之前,先将刚才的更改全部提交,运行git add test.txtgit commit -m"commit 8,9"

 

总结一下reset的用法:

1.  git reset [commit hash/分支名/快捷方式] [文件名]类似“git add的反操作,直接将所在commit的文件状态恢复到暂存区域。省略commit则默认为HEAD,省略文件名默认为所有文件。只改变暂存目录,不改变工作目录,当前commit不变。

2.  git reset --soft [commit hash/分支名/快捷方式]软恢复,将恢复前所在commit的文件状态恢复到暂存区,当前最新commit为参数中的commit。只改变暂存目录,不改变工作目录,当前commit改变。

3.  git reset --hard [commit hash/分支名/快捷方式]硬恢复,强制将整个项目恢复为参数中的commit时的文件状态,清空暂存目录,工作目录clean。暂存目录和工作目录同时被改变,当前commit改变。

 

总结一下rebase

1.  git rebase 目标分支原理其实是先将HEAD指向目标分支和当前分支的共同祖先commit节点,然后将当前分支上的commit一个一个的apply到目标分支上,apply完以后再将HEAD指向当前分支。

2.  rebasemerge的区别:把master分支合并到别的分支用rebase,把别的分支合并到master分支上用merge

3.    rebase不会产生多余的commit,并且保持直线

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值