一、配置git客户端
二、基本操作
2.1 忽略工作区的某些文件或文件夹,使之不会添加到暂存区
2.2 基本命令
Annotate 查看每一行代码的提交人
Show Current Revision 显示当前行最新修订历史版本
compare with the same repository version 与当前文件同版本号的资源比较,其他人修改了此文件并在你之前提交了代码,是不与比较的;
Compare with 可以选择和任意历史版本比较
Compare with Branch 可以选择与本地仓库或远程仓库的任意分支最新版本比较差异
Show history 查看当前分支历史记录
Rollback 回滚到与本地仓库保存一致
Branches 可以查看本地分支和远程分支并且点击切换
Tag 可以给某次commit打上标签,默认当前commit
Merge Branches 合并分支
Stash Changer 储藏
UnStash Changes 取消储藏
Reset 重置
reset三种模式区别和使用场景
区别:
–hard:重置位置的同时,直接将 working Tree工作目录、 index 暂存区及 repository 都重置成目标Reset节点的內容,所以效果看起来等同于清空暂存区和工作区。
–soft:重置位置的同时,保留working Tree工作目录和index暂存区的内容,只让repository中的内容和 reset 目标节点保持一致,因此原节点和reset节点之间的【差异变更集】会放入index暂存区中(Staged files)。所以效果看起来就是工作目录的内容不变,暂存区原有的内容也不变,只是原节点和Reset节点之间的所有差异都会放到暂存区中。
–mixed(默认):重置位置的同时,只保留Working Tree工作目录的內容,但会将 Index暂存区 和 Repository 中的內容更改和reset目标节点一致,因此原节点和Reset节点之间的【差异变更集】会放入Working Tree工作目录中。所以效果看起来就是原节点和Reset节点之间的所有差异都会放到工作目录中。
git push origin HEAD --force 强制提交一次,之前错误的提交就从远程仓库删除
Remotes 关联远程仓库
Clone 克隆远程仓库
Fetch 是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。
pull 则是将远程主机的最新内容拉下来后直接合并.即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。
.
push 推送代码到远程仓库
Rebase 合并
git cherry-pick(拣选)
有时在开发时,会遇到想将某一开发分支的某个特定提交,应用到当前要发布的分支上,而不想合并整个分支;这时就可以使用cherry-pick 来实现;
拣选会提取某次提交的补丁,之后尝试将其重新应用到当前分支上。 这种方式在你只想引入特性分支中的某个提交时很有用。
具体应用:
假设有两个分支dev、test
目前在分支dev上做了个commit(ef2db28ab5b6690c7fc30d76945e8a68efed12b1),而此时test已经落后dev很多;
现在因为项目发布需要,需要将dev上的这个提交单独应用到test上,而同时不合并其他提交;
可进行如下操作实现:
git checkout test //首先切换当前分支为test
git cherry-pick ef2db28ab5b6690c7fc30d76945e8a68efed12b1 //将ef2db28ab5b6690c7fc30d76945e8a68efed12b1提交单独合并至test,并自动commit