. 检出、克隆库:
git clone git://git.openwrt.org/openwrt.git 2. git查看某个文件的修改历史
git log --pretty=oneline 文件名
列出文件的所有改动历史,注意,这里着眼于具体的一个文件,而不是git库,如果是库,那改动可多了去了~ . 查看具体的某次的改动的修改
git show 356f6def9d3fb7f3b9032ff5aa4b9110d4cca87e
每一行最前面的那一长串数字就是每次提交形成的哈希值 Git常用命令
查看、添加、提交、删除、找回,重置修改文件
git help <command> # 显示command的help
git show # 显示某次提交的内容 git show $id
git co -- <file> # 抛弃工作区修改
git co . # 抛弃工作区修改
git add <file> # 将工作文件修改提交到本地暂存区
git add . # 将所有修改过的工作文件提交暂存区
git rm <file> # 从版本库中删除文件
git rm <file> --cached # 从版本库中删除文件,但不删除文件
git reset <file> # 从暂存区恢复到工作文件
git reset -- . # 从暂存区恢复到工作文件
git reset --hard # 恢复最近一次提交过的状态,即放弃上次提交后的所有本次修改
git ci <file> git ci . git ci -a # 将git add, git rm和git ci等操作都合并在一起做                                    git ci -am "some comments"
git ci --amend # 修改最后一次提交记录
git revert <$id> # 恢复某次提交的状态,恢复动作本身也创建次提交对象
git revert HEAD # 恢复最后一次提交的状态 查看文件diff
git diff <file> # 比较当前文件和暂存区文件差异 git diff
git diff <$id1> <$id2> # 比较两次提交之间的差异
git diff <branch1>..<branch2> # 在两个分支之间比较
git diff --staged # 比较暂存区和版本库差异
git diff --cached # 比较暂存区和版本库差异
git diff --stat # 仅仅比较统计信息 查看提交记录
git log git log <file> # 查看该文件每次提交记录
git log -p <file> # 查看每次详细修改内容的diff
git log -p - # 查看最近两次详细修改内容的diff
git log --stat #查看提交统计信息 tig
Mac上可以使用tig代替diff和log,brew install tig Git 本地分支管理
查看、切换、创建和删除分支
git br -r # 查看远程分支
git br <new_branch> # 创建新的分支
git br -v # 查看各个分支最后提交信息
git br --merged # 查看已经被合并到当前分支的分支
git br --no-merged # 查看尚未被合并到当前分支的分支
git co <branch> # 切换到某个分支
git co -b <new_branch> # 创建新的分支,并且切换过去
git co -b <new_branch> <branch> # 基于branch创建新的new_branch
git co $id # 把某次历史提交记录checkout出来,但无分支信息,切换到其他分支会自动删除
git co $id -b <new_branch> # 把某次历史提交记录checkout出来,创建成一个分支
git br -d <branch> # 删除某个分支
git br -D <branch> # 强制删除某个分支 (未被合并的分支被删除的时候需要强制) 分支合并和rebase git merge <branch> # 将branch分支合并到当前分支
git merge origin/master --no-ff # 不要Fast-Foward合并,这样可以生成merge提交
git rebase master <branch> # 将master rebase到branch,相当于: git co <branch> && git rebase master && git co master && git merge <branch> Git补丁管理(方便在多台机器上开发同步时用)
git diff > ../sync.patch # 生成补丁
git apply ../sync.patch # 打补丁
git apply --check ../sync.patch #测试补丁能否成功 Git暂存管理
git stash # 暂存
git stash list # 列所有stash
git stash apply # 恢复暂存的内容
git stash drop # 删除暂存区 Git远程分支管理
git pull # 抓取远程仓库所有分支更新并合并到本地
git pull --no-ff # 抓取远程仓库所有分支更新并合并到本地,不要快进合并
git fetch origin # 抓取远程仓库更新
git merge origin/master # 将远程主分支合并到本地当前分支
git co --track origin/branch # 跟踪某个远程分支创建相应的本地分支
git co -b <local_branch> origin/<remote_branch> # 基于远程分支创建本地分支,功能同上
git push # push所有分支
git push origin master # 将本地主分支推到远程主分支
git push -u origin master # 将本地主分支推到远程(如无远程主分支则创建,用于初始化远程仓库)
git push origin <local_branch> # 创建远程分支, origin是远程仓库名
git push origin <local_branch>:<remote_branch> # 创建远程分支
git push origin :<remote_branch> #先删除本地分支(git br -d <branch>),然后再push删除远程分支 Git远程仓库管理 GitHub
git remote -v # 查看远程服务器地址和仓库名称
git remote show origin # 查看远程服务器仓库状态
git remote add origin git@ github:robbin/robbin_site.git # 添加远程仓库地址
git remote set-url origin git@ github.com:robbin/robbin_site.git # 设置远程仓库地址(用于修改远程仓库地址) git remote rm <repository> # 删除远程仓库 创建远程仓库
git clone --bare robbin_site robbin_site.git # 用带版本的项目创建纯版本仓库
scp -r my_project.git git@ git.csdn.net:~ # 将纯仓库上传到服务器上
mkdir robbin_site.git && cd robbin_site.git && git --bare init # 在服务器创建纯仓库
git remote add origin git@ github.com:robbin/robbin_site.git # 设置远程仓库地址
git push -u origin master # 客户端首次提交
git push -u origin develop # 首次将本地develop分支提交到远程develop分支,并且track
git remote set-head origin master # 设置远程仓库的HEAD指向master分支 也可以命令设置跟踪远程库和本地库
git branch --set-upstream master origin/master
git branch --set-upstream develop origin/develop 其它:
git搭建
windows搭建git:http://v.qq.com/page/v/k/s/v0115ak5aks.html
windows中使用git:http://v.qq.com/page/u/8/i/u0115yt2q8i.html
在vs中使用svn:http://v.qq.com/cover/6/6hwkm72fnkmh6hi.html?vid=k0116vxw2dr
svn搭建:http://v.qq.com/cover/6/6hwkm72fnkmh6hi.html?vid=k0116vxw2dr
下载: https://launchpadlibrarian.net/172450987/gcc-linaro-4.8-2014.04.tar.xz 首先 github上的项目是开源的,别人都可以看到,所以你懂的。。。。
说重点:
.创建一个新的repository:
先在github上创建并写好相关名字,描述。
$cd ~/project //到project目录
$git init //初始化
$git add . //把所有文件加入到索引(不想把所有文件加入,可以用gitignore或add 具体文件)
$git commit -m "add some function" //必须填写更新日志( -m “更新日志”也可)
$git remote add origin https://username@github.com:username/projectname.git //先创建github网站账户,增加到remote
$git push -u origin master //push到github上 .更新项目(新加了文件):
$cd ~/project
$git add . //这样可以自动判断新加了哪些文件,或者手动加入文件名字
$git commit //提交到本地仓库
$git push origin master //不是新创建的,不用再add 到remote上了 .更新项目(没新加文件,只有删除或者修改文件):
$cd ~/project
$git commit -a //记录删除或修改了哪些文件
$git push origin master //提交到github .忽略一些文件,比如*.o等:
$cd ~/project
$vim .gitignore //把文件类型加入到.gitignore中,保存
然后就可以git add . 能自动过滤这种文件 .clone代码到本地:
$git clone git@github.com:username/project.git
假如本地已经存在了代码,而仓库里有更新,把更改的合并到本地的项目:
$git fetch origin //获取远程更新
$git merge origin/master //把更新的内容合并到本地分支 .撤销
$git reset .删除
$git rm * // 不是用rm git rm –cached ooxx ,Git只删除仓库中的代码,而保留本地代码
//------------------------------常见错误----------------------------------- .$ git remote add origin git@github.com:WadeLeng/hello-world.git 错误提示:fatal: remote origin already exists. 解决办法:$ git remote rm origin 然后在执行:$ git remote add origin git@github.com:WadeLeng/hello-world.git 就不会报错误了 . $ git push origin master 错误提示:error:failed to push som refs to 解决办法:$ git pull origin master //先把远程服务器github上面的文件拉先来,再push 上去。

3.error: The requested URL returned error: 403 Forbidden while accessing https://github.com/wangz/future.git/info/refs  解决方案:

vim .git/config

修改url = https://github.com/wangz/example.git

为: url = https://wangz@github.com/wangz/example.git  

再次git push,弹出框输入密码,即可提交

本人遇到的还有一个错误就是,工程传进github 了可是里头缺少文件,
解决方法 $git add . (注意一点 。 )表示添加所有文件,
gitconfig配置文件
Git有一个工具被称为git config,它允许你获得和设置配置变量;这些变量可以控制Git的外观和操作的各个方面。这些变量可以被存储在三个不同的位置:
./etc/gitconfig 文件:包含了适用于系统所有用户和所有库的值。如果你传递参数选项’--system’ 给 git config,它将明确的读和写这个文件。
.~/.gitconfig 文件 :具体到你的用户。你可以通过传递--global 选项使Git 读或写这个特定的文件。
.位于git目录的config文件 (也就是 .git/config) :无论你当前在用的库是什么,特定指向该单一的库。每个级别重写前一个级别的值。因此,在.git/config中的值覆盖了在/etc/gitconfig中的同一个值。
在Windows系统中,Git在$HOME目录中查找.gitconfig文件(对大多数人来说,位于C:\Documents and Settings\$USER下)。它也会查找/etc/gitconfig,尽管它是相对于Msys 根目录的。这可能是你在Windows中运行安装程序时决定安装Git的任何地方。
配置相关信息:   2.1 当你安装Git后首先要做的事情是设置你的用户名称和e-mail地址。这是非常重要的,因为每次Git提交都会使用该信息。它被永远的嵌入到了你的提交中:
  $ git config --global user.name "John Doe"
  $ git config --global user.email johndoe@example.com 2.2 你的编辑器(Your Editor)
  现在,你的标识已经设置,你可以配置你的缺省文本编辑器,Git在需要你输入一些消息时会使用该文本编辑器。缺省情况下,Git使用你的系统的缺省编辑器,这通常可能是vi 或者 vim。如果你想使用一个不同的文本编辑器,例如Emacs,你可以做如下操作:
  $ git config --global core.editor emacs

2.3 检查你的设置(Checking Your Settings)
  如果你想检查你的设置,你可以使用 git config --list 命令来列出Git可以在该处找到的所有的设置:
  $ git config --list
你也可以查看Git认为的一个特定的关键字目前的值,使用如下命令 git config {key}:
  $ git config user.name 2.4 获取帮助(Getting help)
  如果当你在使用Git时需要帮助,有三种方法可以获得任何git命令的手册页(manpage)帮助信息:
  $ git help <verb>
  $ git <verb> --help
  $ man git-<verb>
  例如,你可以运行如下命令获取对config命令的手册页帮助:
  $ git help config

Git/Github使用方法小记
今天把人间网的桌面客户端renjian-deck正式开源了,之前对javas­cript的了解其实非常的不够的,所以这一次的代码写的也是乱七八糟重用性及其低下,虽然我无数次的想把代码重新整理一下,不过还是糊里糊涂一时冲动的在他们还是乱七八糟的时候开源了。因为之前是基于git­hub上的一个开源项目,所以硬着头皮也放到git­hub上,虽然没有使用的经验,不过磨机磨机还是搞定了。
以下是具体步骤,就当是自己做个笔记了,高手请绕道吧。
、下载安装桌面端git。
Win­dows请至:http://​code.​google.​com/​p/​msysgit/​
安装的时候最好还是允许在shell嵌入git的命令,相对还是比较方便的。
OSX可以在xcode中安装com­mand line tools,或者brew install git 、git的初始设置
git config --global user.name "Your Real Name"
git config --global user.email you@email.address

3、建立仓库
在git bash里找到你的项目目录。(或直接用shell右键里的git bash here)
git init
这样在你的项目目录下就会有一个.git的隐藏目录(类似于.svn) 。 、初始化项目
git add .
留心后面的一个 “.” , 这是添加所有文件的情况,如果愿意,你也可以添加特定的几个文件,比如git add readme.​txt等等。
之后就可以做我们的first com­mit到仓库里了。
git commit -m 'first commit'
-m 参数以及后面的字串是添加说明。 、 注册git­hub账号
下面就是与git­hub有关的操作了。
首先到http://​github.​com/​%E6%B3%A8%E5%86%8C%E8%B4%A6%E5%8F%B7%E3%80%82%E6%B3%A8%E5%86%8C%E4%B9%8B%E5%90%8E%E5%8F%AF%E4%BB%A5%E7%9C%8B%E5%88%B0%E8%BF%99%E6%A0%B7%E7%9A%84%E7%95%8C%E9%9D%A2%E3%80%82%E9%80%89%E6%8B%A9%E7%AC%AC%E4%B8%80%E9%A1%B9%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E9%A1%B9%E7%9B%AE%E3%80%82
表单需要填写
Pro­ject Name(项目名称)
De­scrip­tion(描述)
Homepage URL(主页URL,一般就以项目名称命名好了) 、创建SSH密匙
这步工作应该是最麻烦的吧。回到桌面,打开git bash,输入以下命令。
ssh-keygen -C 'your@email.address' -t rsa
确认使用默认路径,然后输入两次你要是用的密码就行(一般直接敲几个回车不使用密码)。 、提交密匙
现在又要回到git­hub的页面上,在右上方工具栏里找到Ac­count Set­tings。在这个页面上有一个SSH Pub­lic Keys标签,选择Add an­other pub­lic key。Title随便取,Key是一段东西。
找到刚才创建密匙的那个目录下(默认是C:\Documents and Settings\你的windows用户名.ssh,OSX是~/.ssh)找到id_rsa.pub文件,把它打开可以看到一堆文字,拷贝下来黏贴到git­hub页面key的空白处。然后Apply,就好了。
可以使用以下命令测试连接
ssh -v git@github.com
会要求输入你刚才设置的密码,如果成功的话可以看到这样的ERROR(orz,起码证明连接是成功了)
ERROR: Hi Arthraim! You've successfully authenticated, but GitHub does not provide shell access 、上传代码
最后就是上传你的代码了~ bash切换到你的项目目录下,输入以下命令。
git remote add origin git@github.com:你的github用户名/你的github项目名.git
git push origin master
hehe,现在再去http://github.com/你的github用户名/你的github项目 就可以看到你的项目了~ Good luck
当然这是从无到有,如果你有一个git的repo,想添加到git­hub上,那就直接使用第8步的命令就可以了(不要忘记密匙的相关工作)。话说很多初学者应该会和我一样,在初期搞不清git和git­hub的关系,git是和CVS,SVN并列的一个概念,而git­hub是和Google Code, source­forge并列的一个概念,这样说就明白了吧。所以,git的学习的话,参见这里。
BTW:Git­hub的社区感很好,体验很不错,怪不得有这么多人在git­hub上乐此不疲的交流代码。   

git配置http代理:git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080
取消代理:git config --global --unset http.proxy/https.proxy
检查代理: git config --global --get http.proxy/https.proxy

git配置sock5代理,例如ip为127.0.0.1, 端口为1080, 打开终端,运行以下命令:
git config --global http.proxy 'socks5://127.0.0.1:1080'
git config --global https.proxy 'socks5://127.0.0.1:1080'
查看配置:cat ~/.gitconfig

# Git

## 分布式世界

### 1. 版本控制之道

- 版本库
- 集中式(CVS、SVN)
- 分布式(git)
- 工作目录树
- 断面视图
- 工作拷贝
- 1、初始化(init).git目录
- 2、克隆(clone)
- 代码修改与文件同步
- 跟踪项目、目录和文件
- 使用标签跟踪里程碑
- 使用分支来跟踪并行演进
- 合并
- 锁机制 ### 2. 安装与设置 - 安装
- Linux
- Mac:sudo port install git-core +svn +doc
- Windows
- Cygwin
- MSys
- 设置 git config
- 提 交 者:git config --global user.name "Jamsonwoo"
- 邮件地址:git config --global user.email "Jamsonwoo@126.com"
- 查看:git config --global --list
- 颜色:git config --global color.ui "auto" (auto/always/false)(注:MSys建议用always)
- GUI
- Tcl/TK:git gui(备注:工作目录树)
- gitk --all(备注:工作目录树)
- GitX (Mac)
- 内置帮助
- git help <command>
- git-doc ### 3. Hello Git - 创建版本库:git int
- 修改代码
- 1、添加索引:git add index.html
- 2、提交记录:git commit -m "add in hello git HTML" (备注:提交留言至少应该体现出进行本次修改的原因。先用一句简单的话来概括该提交;然后用几句话全面解释。)
- 3、查看日志
- git log <-1>(扩展:SHA-1哈希码)
- git log --pretty=oneline
- 视图状态:git status (备注:存放代码)
- 1、工作目录树
- 2、索引(暂存区)
- 3、版本库
- 分支
- 1、创建分支:git branch 新分支名称 父分支名称
git branch RB_1.0 master
- 2、提交修改:git commit -a(-a:提交全部修改过的文件)
- 3、切换分支:git checkout 分支名称
git checkout RB_1.0
- 处理发布
- 1、打标签:git tag 标签名称 打标签的点
git tag 1.0 RB_1.0
- 2、变基命令:git rebase 分支名称(合并到主分支)
git rebase RB_1.0
- 3、删除分支:git branch -d 分支名称
git branch -d RB_1.0
- 4、创建归档:git archive --format=输出格式 --prefix=包内容 需要归档的标签名称 | gzip > 压缩结果重定向
- git archive --format=tar --prefix=mysite-1.0/ 1.0 | gzip > mysite-1.0.tar.gz
- git archive --format=zip --prefix=mysite-1.0/ 1.0 > mysite-1.0.zip
- 克隆远程版本库:git clone 远程版本库的位置 存放该版本库的本地目录
git clone git://github.com/tswicegood/mysit.git mysite-remote ## Git用法 ### 1. 添加与提交 - 添加文件到暂存区
- 1、启动交互命令提示符:git add -i
- 2、直接进入补丁模式:git add -p
- 提交修改
- 1、跟踪空目录:git不单独记录和跟踪目录,解决:在空目录里添加一个句点开头的空文件
- 2、git commit 的提交留言编辑器 -v
- 如果输入不带-m参数的git commit命令,Git将启动编辑器来编辑提交留言。为启动编辑器,Git会按照一下顺序查找编辑器的设置:
- 1、环境变量 GIT_EDITOR 的值。
- 2、Git 的设置 core.editor 的值。
- 3、环境变量 VISUAL 的值。
- 4、环境变量 EDITOR 的值。
- 5、如果上述值均为空,Git 会尝试启动 vi 编辑器。
- 提交三法
- 备注 a、提交暂存后的修改(先暂存后提交)
- 备注 b、提交工作目录树中的所有修改(把修改直接提交)
- 备注 c、提交工作目录树中执行的修改(把修改直接提交)
- 1、添加到暂存区
- 1、git add 文件
- 2、git commit -m "留言"
- 2、提交所有修改到版本库:git commit -m "留言" -a
- 3、指定提交文件(列表):git commit -m "留言" 文件
Git别名:
git commit 简写为:git ci
git config --global alias.ci "commit"
- 查看修改内容
- 1、查看当前状态:git status
Changes to be committed. 待提交变更
Changed but not updated. 未更新到索引的变更
- 2、查看文件改动:git diff
- a、git diff 无参 工作目录树 VS 暂存区
- b、git diff --cached 暂存区 VS 版本库
- b、git diff HEAD 工作目录树(暂存+未暂存) VS 版本库
- 管理文件
- 1、文件重命名与移动:git mv 原文件名称 新文件名称
- 2、复制文件:无git cp命令,无需复制
- 3、忽略文件:
- a、版本级:文件加入.gitignore文件中,支持通配符*
- b、本地级:.git/info/exclude ### 2. 分支 - 什么叫分支
- 分支重命名:git branch -m 分支原名称 新名称
git branch -m master mymaster
- 显示本地版本库所有本地分支名称:git branch
- 创建分支:1、试验性更改 2、增加新功能 3、Bug修复
- 创建新分支
- 创建分支:git branch 新分支名称
git branch newBranchName
- 检出分支:git checkout 分支名称
git checkout newBranchName
- 创建并检出:git checkout -b 新分支名称 新分支源分支
git checkout -b newBranchName2 master
- 合并分支
- 合并(merge)方法
- 1、直接合并:把两条分支上的历史轨迹合并,交汇到一起
- 2、压合合并:一条分支上若干提交条目压合成一个提交条目,提交到另一条分支的末梢
- 3、拣选合并:拣选另一条分支上的某个提交条目的改动带到当前分支上
- 直接合并
- git merge 分支名称
git checkout alternate
git add about.html
git commit -m "add about page"
git checkout master
git merge alternate
- 压合合并
- git merge --squash 分支名称
git checkout -b contact master
git add contact.html
git commit -m "add contact file"
git commit -m "add contact file 2" -a
git checkout master
git merge --squash contact
git status
git commit -m "add contact page" -m "has primary and secondary email"
- 拣选合并
- git cherry-pick 提交名称
git checkout contact
git commit -m "add contact 3" -a
[contact 6dbaf82]......
git checkout master
git cherry-pick 6dbaf82 / git cherry-pick -n 6dbaf82
- 冲突处理
- git merge
git checkout -b about master
编辑about.html
git add about.html
git commit -m "add about.html "
git branch about2 about
编辑about.html
git commit -m "add about.html 1" -a
git checkout about2
编辑about.html
git commit -m "add about.html 2" -a
git checkout about
git merge about2
git mergetool
git commit
- 处理冲突软件(kdiff3):git config --global merge.tool kdiff3
- git mergetool
- 删除分支
- git branch -d 分支名称 (成功合并到当前分支时)
git branch -d about2
- git branch -D 分支名称 (强制删除)
- 分支重命名
- git branch -m 原分支名称 新分支名称 (不允许重名)
git branch -m contact abc
- git branch -M 原分支名称 新分支名称 (强制覆盖)
git branch -m master contact ### 3. 查询历史记录 - 查看日志
- git log
- j 向下浏览;k 向上浏览;q 退出
- 提交名称、提交人、提交日期、提交留言
- git log -p (显示版本之间的代码差异)
- git log -1(数字表示提交日志条数)
- git log 7b1558c (指定提交名称缩写[前7位])
- 指定查找范围
- git log --since/before="英文格式日期"
- git log --since="5 hours" (最近5小时内)
- git log --before="2012-8.20" -1 (20120820之前的最后一条)
- git log 最老版本..最新版本
- git log 18f822e..0bb3dfb
- 注:日志结果不包括最老,包括最新
- git log 18f822e..HEAD / git log 18f822e..
- git log 标签名称
- git log --pretty=format:"%h %s" 1.0..HEAD
- git log --pretty=oneline 1.0..HEAD
- \^:回溯一个版本
- git log 18f822e^^
- 注:1、windows系统下,^需要添加双引号 git log “18f822e^^”。
- 注:2、当遇到某个节点(通常是版本合并后的节点)有并列的多个父节点时,“^1”代表第一个父节点,“^2”代表第二个,以此类推。而“^”是“^1”的简写。
- *~N:回溯N个版本
- git log -1 HEAD^^^ / git log -1 HEAD^~2 / git log -1 HEAD~1^ / git log -1 HEAD~3
- git log -1 HEAD~10..HEAD
- 查看版本间差异
- git diff 版本名称(与当前工作目录树的差异)
- git diff 18f822e
- git diff --stat 1.0(数据统计)
- 查明提交者
- git blame 文件名(特定代码块历史)
- git blame hello.html
- 注:1、格式:提交名称 初始文件名(提交人 提交时间 行号) 代码行
- 注:2、^脱字号开头表示版本库中第一个递交
- git blame -L <开始>,<结束> 文件名(特定代码行历史)
- git blame -L 12,13 hello.html
- git blame -L 12,+2 hello.html
- git blame -L 12,-2 hello.html
- git blame -L 正则表达式 文件名(特定代码行历史)
- git blame -L "/<\/body>/",+2 hello.html
- >git blame -L "/<\/body>/",-2 "4333289e^" -- index.html
- 跟踪内容
- 检查在同一个文件内移动或复制的代码行:git blame -M 文件名
- 查看文件之间的复制:git blame -C -C 文件名
- 查看显示代码的具体变动的历史记录:git log -C -C -1 -p
- 撤销修改
- 增补提交:git commit -C HEAD -a --amend
- --amend:增补提交
- -C:复用指定提交的提交留言
- -c:打开编辑器,在已有提交留言基础上修改
- 反转提交:git revert -n 提交名称
- 参数:--no-edit
- 复位:git reset 提交名称
- 提交名称默认值:HEAD
- 提交名称可用^和~修饰符
- 参数--soft:暂存所有因复位带来的差异,但不提交它
- 参数--hard:慎用,从版本库和工作目录树中同时删除提交
- 重新改写历史记录
- 重新排序提交:git rebase -i HEAD~3
- 将多个提交压合成一个提交:git rebase -i 0bb3dfb^
- 将一个提交分解成多个提交:git rebase --continue ### 4. 与远程版本库协作 - 网络协议
- SSH:用户名@服务器名/版本库路径
git@github.com/tswicegood/mysite-chp6.git
- git:协议://服务器名/版本库路径 (使用9418端口、匿名、无须加密、只读)
git://github.com/tswicegood/mysite-chp6.git
- HTTP/HTTPS:需架设WebDAV服务
- 最快:git
- 安全:SSH
- 不受防火墙限制:HTTP(S)
- 克隆远程版本库:git clone git://github.com/tswicegood/mysite-chp6.git
- 版本库同步
- 取来(fetch):git fetch
- 查看远程分支:git branch -r
- 取来合并:git pull 远程版本库名称 须要拖入的远程分支名
- 远程分支名前缀origin/表示远程版本库上的分支名称,origin是默认远程版本库别名
- 推入改动
- 推入默认版本库origin:git push
- 查看推入哪些提交:git push --dry-run
- 推入指定版本库:git push <repository> <refspec>
git push origin mybranch:master
- 添加新的远程版本库
- 一次拖入:git pull git://ourcompany.com/dev-erin.git
- 使用别名:git remote add 别名 路径
- 查看远程版本库详细信息:git remote show <name>
- 删除别名:git remote rm ### 5. 管理本地版本库 - 使用标签标记里程碑
- 标签只读、标签名不能包含空格
- 查看已存在标签:git tag
- 新建标签:git tag 标签名
- git tag 标签名 提示名称/分支名称
- 发布分支的处理
- 发布分支通常以RB_为前缀并包含版本号,RB_1.3
- git branch RB_1.0.1 1.0
- 标签与分支的有效名称
- 不能以“/”结尾
- 不能以“.”开头
- 不能使用特殊字符:空格~^:?*[控制符删除键
- 不能出现“..”
- 记录和跟踪多个项目
- 多个项目共享一个版本库
- 多项目多版本库
- 使用Git子模块跟踪外部版本库
- 添加新子模块
- 查看该版本库的子模块:git submodule
- 添加新子模块:git submodule add 源版本库 存储路径
git submodule add git://github.com/tswicegood/hocus.git hocus
- 初始化子模块:git submodule init hocus
- 克隆含子模块的版本库:git submodule update 子模块名
cd work
git clone magic new-magic
cd new-magic git submodule
git submodule init hocus
git submodule update hocus
- 改变子模块的版本
- 使用子模块时要提防的错误
- git add 确保结尾没有“\”
- submodule update 先检查提交
- 添加新内容到本地自模块版本库,要检出正确分支
- 修改提交,确保改动被送回远程版本库 ### 6. 高级功能 - 压缩版本库
- git gc 整理版本库、优化Git内部存储历史记录
- git gc <--aggressive> 重新计算增量存储单元
- 到处版本库
- 创建版本快照:git archive 格式类型 指定版本
- git archive --format=<tar/zip> <--prefix=父目录> 转换格式
git archive --format=zip --prefix=mysite-release/ HEAD > mysite-release.zip
git archive --format=tar --prefix=mysite-release/ HEAD | gzip > mysite-release.tar.gz
- 分支变基
- git rebase --continue/--skip/--abort
- git rebase --onto master contacts search
- 重现隐藏的历史:git reflog
- 二分查找
- git bisect start
- git bisect bad
- git bisect good 1.0
- git bisect reset
- git bisect visualize
- git bisect log
- git bisect replay <文件>
- git bisect run

  

git init
git add . //指的是把所有文件 添加到本地repository
git commit -m "test" //这里是添加commit的message
git remote add origin git://git.openwrt.org/14.07/openwrt.git
git push origin master //origin指的是remote 远端地址, master 指的是你的分支。 代码提交一般有五个步骤:
.查看目前代码的修改状态
.查看代码修改内容
.暂存需要提交的文件
.提交已暂存的文件
.同步到服务器 . 查看目前代码的修改状态
提交代码之前,首先应该检查目前所做的修改,运行git status命令
a) 已暂存 (changes to be committed)
new file //表示新建文件
modified //表示修改文件
deleted //表示删除文件 b) 已修改 (changed but not updated)
modified //表示修改文件
deleted //表示删除文件
另外,git 给出了可能需要的操作命令,git add/rm, gitcheckout -- c) 未跟踪 (untracked files) . 查看代码修改的内容
git diff <file>
比较某文件与最近提交节点的差异。
注意:如果该文件已暂存,那么应该使用git diff –cached<file> git diff <hashcode> <hashcode> <file>
比较某文件在提交节点a,节点b的差异。
技巧:如果省略后面一个hashcode,则默认表示与上一提交节点比较。(也可以利用^运算符 . 暂存需要提交的文件
如果是新建的文件
则git add <file>
如果是修改的文件
则git add <file>
如果是删除的文件
则 git rm <file> . 提交已暂存的文件
git commit
注意注释填写规范。 git commit --amend
修改最近一次提交。有时候如果提交注释书写有误或者漏提文件,可以使用此命令。 . 同步到服务器
同步到服务器前先需要将服务器代码同步到本地
命令: git pull
如果执行失败,就按照提示还原有冲突的文件,然后再次尝试同步。
命令:git checkout -- <有冲突的文件路径> 同步到服务器
命令: git push origin <本地分支名>
如果执行失败,一般是没有将服务器代码同步到本地导致的,先执行上面的git pull命令。

git使用,Git的skil-map,git配置http/https/socks5代理的更多相关文章

  1. 下载编译安装Apache HTTP Server 2.4.23以及配置HTTP/HTTPS反向代理

    http://blog.csdn.net/gangchengzhong/article/details/52910225 [注意,在编译make时出现的错误并不是文章中说的openssl的版本问题,而 ...

  2. Git使用指南(1)——Git配置命令

    配置用户信息 git config --global user.name bongxin git config --global user.email bongxin@yeah.net 配置文本编辑器 ...

  3. Git学习笔记(9)——自定义配置

    本文主要记录了Git的一些易用化的配置和别名的使用 配置Git的命令输出带有颜色,更加醒目 //配置输出颜色 $ git config --global color.ui true //取消输出颜色 ...

  4. git初体验(六)git配置

    一.基本配置 看这篇Git 基本配置其实就解决很多问题了. 二.客户端配置 1.git bash 粘贴与编辑 在git bash客户端头部右键,现在属性,然后把"快速编辑模式勾选即可&quo ...

  5. Git客户端图文详解如何安装配置GitHub操作流程攻略

    收藏自 http://www.ihref.com/read-16377.html Git介绍 分布式 : Git版本控制系统是一个分布式的系统, 是用来保存工程源代码历史状态的命令行工具; 保存点 : ...

  6. 向Git证明自己的身份,Git别名配置

    一.向Git证明自己的身份 在安装完Git后,第一步就是向Git说明自己的身份,通过如下两个命令证明: git config --global user.name "myusername&q ...

  7. 使用Homebrew安装Git与Github在idea中的配置

    系统环境:macOS 10.13.4 一.Homebrew的安装 linux系统有个让人蛋疼的通病,软件包依赖,好在当前主流的两大发行版本都自带了解决方案,Red hat有yum,Ubuntu有apt ...

  8. OSX下git diff/merge 可视化工具 P4Merge 环境配置步骤

    先下载 step1:首先,把要运行的命令放入外部包装脚本中,创建一个merge包装脚本,名字叫做extMerge,让它带参数调用P4Merge. $ cat >> /usr/local/b ...

  9. [Git/Github] ubuntu 14.0 下github 配置

    转载自:http://www.faceye.net/search/77573.html 一:创建Repositories1:首先在github下创建一个帐号.这个不用多说,然后创建一个Reposito ...

随机推荐

  1. linux下occi操作oracle数据库,中文乱码的问题

    转载:http://www.linuxidc.com/Linux/2008-02/11238.htm 前几日调通了OCI连接数据库的问题后,用Oracle自带的例子测试了一下,能正常读取数据(都是英文 ...

  2. [51Nod1850] 抽卡大赛

    link $solution:$ 朴素 $dp$,暴力枚举选择 $i$ 号人的第 $j$ 张卡片,朴素 $dp$ 即可,时间复杂度 $O(n^4)$ . 考虑对于朴素 $dp$ 的优化,发现其实是一个 ...

  3. 在java中读取文件中的内容

    package shi; import java.io.*; public class wenjianIO { public static void main(String agrs[]){ File ...

  4. 防抖&节流

    使用的原因 在前端开发当中有一部分的用户行为会频繁操作触发事件执行,而对于DOM操作,资源加载等耗费性能的处理,很可能导致页面卡顿,甚至浏览器崩溃,函数节流和防抖就是解决类似需求应运而生的 节流 预定 ...

  5. 新建maven子模块 出现 Unable to read parent POM

    新建maven子模块 出现 Unable to read parent POM错误 于是把pom.xml文件中的 中文字符全部删除 包括 注释 最后成功建立

  6. SPSS 23下载安装和激活

    目录 1. 其他版本 2. 安装教程 3. 下载地址 1. 其他版本 参考:https://www.cnblogs.com/coco56/p/11648399.html 2. 安装教程 SPSS 23 ...

  7. C 调试 gdb常用命令

    gdb常用命令: [root@redhat home]#gdb 调试文件:启动gdb (gdb) l :(字母l)从第一行开始列出源码 (gdb) break n :在第n行处设置断点 (gdb) b ...

  8. 牛客假日团队赛5 F 随机数 BZOJ 1662: [Usaco2006 Nov]Round Numbers 圆环数 (dfs记忆化搜索的数位DP)

    链接:https://ac.nowcoder.com/acm/contest/984/F 来源:牛客网 随机数 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言6 ...

  9. python学习_day1

    简单的输入与输出 python3.x输入 用内置函数input(),返回的数据类型是string,输出用print() 查看数据类型 用type方法 例如 a = int(input('请输入:')) ...

  10. phpstudy升级5.7

    1:备份当前数据库数据. 最好是导成 SQL 文件 2:备份 PhpStudy 下的 MySQL 文件夹.以防升级失败.还可以使用旧版本的数据库 3:下载MySQL5.7.解压.然后放在 PhpStu ...