Git Start
Git是目前世界上最先进的分布式版本控制系统(没有之一)。
查看本地分支:
|
|
查看远程分支:
|
|
新建branch:
|
|
删除分支
|
|
强制删除使用 -D
切换branch
|
|
合并分支
|
|
查看记录
|
|
查看某一个文件的所有提交记录:
查看某一个记录的修改内容:
*
例子里面打印出来的就是针对文件views.py的所有的改动历史,每一行最前面的那一长串数字就是每次提交形成的哈希值,接下来使用git show即可显示具体的某次的改动的修改
存储
- 1git stash
用来暂存当前正在进行的工作, 比如突然你想pull 最新代码, 又不想加新commit, 或者为了fix 一个紧急的bug, 先stash, 使返回到自己上一个commit, 改完bug之后再stash pop, 继续原来的工作。
- 123git stash 做一些操作后git stash list 查看stash 列表git pop 将最近的一个取出,并且删除
if你的stash里面有好多个,这个时候可以使用git stash list 将Git栈信息打印出来,然后git stash apply stash@{0},取出对应的,注意这个时候并没有清除,如果需要清除,git stash clear,清空
stash 多了,会发现list中你不知道哪一个对应的修改是什么?解决方法
12345git stash save "I DO SOMETHING"git stash list>>stash@{0}: On develop: I DO SOMETHINGgit stash pop stash@{0} or git stash apply stash@{0}两者区别在于pop会删除stash,apply不会删除最后apply结束后,git stash clear详细可以使用 git stash -help
git pull –rebase
当本地commit一个提交和远端服务器中的代码有冲突(别人也改了相同的文件)时可以在pull 中加 –rebase。
加上rebase的意思是:
把本地 repo. 从上次 pull 之后的变更暂存起來
恢复到上次 pull 时的状态
合并远端的变更到本地
最后再合并刚刚暂存下來的本地变更
修改commit 内容
// 查看修改
1git commit --amend 可以修改最后一次 commit12git rebase -i master~1 //最后一次git rebase -i master~5 //最后五次// 显示结果如下,修改 pick 为 edit ,并 :wq 保存退出
12345678pick 92b495b 2009-08-08: ×××××××Rebase 9ef2b1f..92b495b onto 9ef2b1fCommands:pick = use commitedit = use commit, but stop for amending //改上面的 pick 为 editsquash = use commit, but meld into previous commitIf you remove a line here THAT COMMIT WILL BE LOST.However, if you remove everything, the rebase will be aborted.命令行显示:
123Rebasing (1/1)You can amend the commit now, withgit commit --amend使用
git commit --amend
进行修改,完成后 :wq 退出- 使用
git rebase --continue
完成操作
恢复文件
git 恢复
1git checkoutgit 返回到某个节点的文件
1git checkout 1bbbb91aaf96f1274750c6fd21d77c5e7142d424 文件路径
git 有用的小贴士
123
> 内建的git输出 gitk> 彩色的git输出 git config color.ui true> git config format.pretty oneline
Git 使用时候遇到的错误
- GIT CLONE ERROR
错误fatal: The remote end hung up unexpectedly
解决方案:12git config --global http.postBuffer 24288000git config --list
GIT 一般使用:
从一般开发者的角度来看,git有以下功能:
- 从服务器上克隆数据库(包括代码和版本信息)到单机上。
- 在自己的机器上创建分支,修改代码。
- 在单机上自己创建的分支上提交代码。
- 在单机上合并分支。
- 新建一个分支,把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。
- 生成补丁(patch),把补丁发送给主开发者。
- 看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。
- 一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。
从主开发者的角度(假设主开发者不用开发代码)看,git有以下功能:
- 查看邮件或者通过其它方式查看一般开发者的提交状态。
- 打上补丁,解决冲突(可以自己解决,也可以要求开发者之间解决以后再重新提交,如果是开源项目,还要决定哪些补丁有用,哪些不用)。
- 向公共服务器提交结果,然后通知所有开发人员。
git diff 082721fa41f6a351b4385ec02d94d8464f9ebb52 24a821ab059c12f9ec501bb93dc87439a1a4fd4f | wc -l