假设 feature-A 已经开发完,先需要将它合并到master。
$ git checkout master $ git merge --no--ff feature-A // 为了在历史记录中明确记录本次分支合并,我们需要创建合并提交。因此需要加上 --no--ff 参数git log --graph —— 以图表的形式查看分支。*该命令可以用图表形式输出提交日志,非常直观
更改提交的操作git reset ——回溯历史版本
要让仓库的HEAD、暂存区、当前工作树回溯到指定状态,需要用到git reset --head 命令。只需要提供hash值,就可以完全恢复至该时间点的状态
git log 只能查看当前状态为终点的历史日志。用git reflog 可以查看当前仓库的操作日志。通过log查找hash值,通过reset --hard 命令恢复到回溯历史前的状态
消除冲突
解决冲突后,执行git add 和git commit命令
<<<<<<< HEAD -feature-A ======= -fix-B >>>>>>> fix-Bgit commit --amend ——修改提交的comment (上一条),执行命令后,会启动编辑器。执行 git log --graph 可以查看是否修改成功。
git rebase -i —— 压缩历史日志。
git rebase -i HEAD~2 : 可以选定当前分支中包含HEAD(最新提交)在内的两个最新历史记录对象,并在编辑器中打开
pick 7a33333 Add feature-C pick 6f11111 Fix typo #p,pick = use commit #r,reword = use commit,but edit the commit message #e,edit = use commit,but stop for emending #s,squash = use commit, but meld into previous commit #f,fixup = like 'squash',but discard this commit`s log message #x,exec = run command (the rest of the line) using shell //将6f11111 Fix typo的历史记录,压缩到7a33333的Add feature-C里。将pick删除,改写为fixup pick 7a33333 Add feature-C fixup 6f11111 Fix typo 远程仓库操作
git remote add ——添加远程仓库
$ git remote add origin git@github.com:github-book/git-tutorial.git
git push —— 推送至远程仓库
git clone —— 获取远程仓库
执行clone 命令后,默认处于master分支
git check -b feature -D origin/feature-D
git pull —— 获取最新的远程仓库分支
如果两人同时修改了统一部分源代码,push时就很容易发生冲突。所以多名开发者在同一个分支中进行作业时,为减少冲突情况发生,建议频繁地进行push和pull操作
GitHub 的其他功能 GitHub PagesGithub pages 主要用于在Github上托管��态HTML,以便发布项目的Web页。
由于可以绑定独立的域名,人们也经常利用结合这个功能的Octopress 来搭建博客
Github Jobs面向全世界招聘程序员的职位公告板。Jobs
Github Enterprise企业版
Github APIGitHub 面向开发者公开了API。 具体见 https://developer.github.com
Pull Request按部就班地创建GitHub账号并公开自己的源码并不是什么难事。Pull Request 是社会化编程的象征,可以说给开源开发世界带来了一场革命。不会用这个功能,就等于不会用GitHub。。。(作者吹得有点过。。)
Pull Request 是GitHub的核心功能
Conversation(以下技巧同样可以应用在其他评论中,如Issue)
在评论中应用表情
(同样应用在其他评论中,如Issue)在评论中输入 ":" 便会启动表情自动补全功能。只需要输入几个与表情相关的字母,系统就会为您筛选自动补全的对象。具体表情见:
引用评论