Git的基本概念及使用.md
GitGit是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统git与svn的区别:gitsvn分布式版本控制系统集中式版本控制系统将项目缓存在本地再推送到服务器直接与服务器进行交互不需联网需联网不易冲突易冲突旨在代码管理旨在项目管理...
Git
- Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目
版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统
git与svn的区别:
git | svn |
---|---|
分布式版本控制系统 | 集中式版本控制系统 |
将项目缓存在本地再推送到服务器 | 直接与服务器进行交互 |
不需联网 | 需联网 |
不易冲突 | 易冲突 |
旨在代码管理 | 旨在项目管理 |
适用于单项目开发 | 适用于多项目并行开发适用于单项目开发。 |
用于通过网络多人开发同一项目 | 适用于企业内部 |
工作区,暂存区,版本库,本地仓库
- 工作区Workspace:就是你在电脑里能看到的目录,即你代码放的那个文件夹。即时性强,对文件的所有更改都会立刻提现在这里。
- 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
- 暂存区 Index / Stage:git add以后,当前对文件的更改会保存到这个区
- 本地仓库Repository:git commit以后,当前暂存区里对文件的更改会提交到本地仓库
- 远程仓库Remote:远程仓库名一般叫origin。git push以后,本地仓库里优先于远程仓库的commit会被push到远程仓库
补充命令
1、从 reset --HARD 中恢复提交
使用git reflog
命令就好了. (由 Gittenberg 提供)
2、Diff
如果你想查看两个分支之间有什么不同之处,你只需要这样做:git diff branch1..branch2
。
3、通过正则表达式匹配提交信息并显示
使用 git show :/fixes 命令,你可以找到提交信息中包含传入的字符串(这个例子中是fixes)的最近的提交。
4、限制 git push
的默认行为
如果你运行git push,默认的行为是将所有的分支提交到远程代码库。这可能会导致很多问题,如果你不想这么做,你可以:git config --global push.default tracking
。
更新: Git 2.0 移除了这个默认的行为 http://blog.nicoschuele.com/posts/git-2-0-changes-push-default-to-simple
5、切换到一个分支 rebase 并 merge 到 master
可以这样做:git rebase HEAD feature && git rebase HEAD @{-2}
6、Git 保存工作状态
如果由于你的工作还没有完成,但此时又有紧急的是找上你,你可以使用git stash
来保存这些修改,提交你紧急的任务,之后再用 git stash pop
恢复到你保存时的状态。
7、别名
你还在为一次又一次的输入 checkout 而感到讨厌吗?现在就去尝试:git config --global alias.co checkout。你就可以通过:git co master
命令来切换到master了。
8、重命名一个本地分支
使用:git branch -m old-name new-name` 你可以很容易的重命名一个本地分支。
9、搜索作者名称
你可以通过使用`git log --author=Matheus`` 来搜索一个指定作者的提交记录。
10、给git status
加上参数
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)