git学习笔记
来源:互联网 发布:华中科技大学网络与远程教育 编辑:程序博客网 时间:2024/05/22 05:27
推荐一个学习git的教程:
廖雪峰:
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
1.本地搭建仓库
初始化建立新仓库:git init
关联一个远程仓库:git remote add origin git@server-name:path/repo-name.git
克隆远程仓库到本地:git clone (远程仓库地址)
2.分支操作
查看当前分支:git branch
创建新分支:git branch (分支名)
删除分支:git branch -d (分支名)
切换分支:git checkout (分支名)
创建并切换分支:git checkout -b (分支名)
合并指定分支到当前分支:git merge (分支名)
(合并发生冲突时,手动解决发生冲突的文件)
使用–no-ff方式合并并提交:git merge --no-ff -m "message" dev
强行删除没有合并过的分支:git branch -D (分支名)
3.版本/修改操作
回退到以前版本:git reset --hard HEAD^
通过commit id版本回退:git reset --hard commit_id
丢弃工作区的修改,或误删文件时(版本库中没被删除时)恢复文件:git checkout -- (filename)
丢弃暂存区修改,把暂存区的最新一次修改撤销掉,重新放回工作区:git reset HEAD (filename)
工作区删除文件后,在版本库中也删除该文件:git rm (filename)
4.提交到本地仓库
将文件添加到暂存区:git add (filename)
(可以用.表示所有都添加)
将暂存区所有内容提交到当前分支:git commit -m "this is a message about this commit"
5.和远程仓库操作
关联后,第一次推送到远程仓库:git push -u origin master
推送最新修改到远程仓库:git push origin master
抓取远程最新提交:git pull
本地分支和远程分支建立连接:git branch -set-upstream dev origin/dev
强制覆盖远程仓库:git push origin master --froce
6.储藏区
储存当前工作区:git stash
恢复stash:git stash apple
删除stash:git stash drop
恢复stash并删除stash:git stash pop
7.标签操作
给分支当前状态打标签:git tag (标签名)
给分支历史commit打标签:git tag (标签名) commit_id
创建带有说明的标签:git tag -a (标签名) -m "message" (commid_id)
删除标签:git tag -d (标签名)
将某个标签推送到远程:git push origin (标签名)
推送所有没推送到远程的标签:git push origin --tags
删除推送到远程的标签(先在本地删除该标签):git push origin :refs/tags/(标签名)
8.查看信息操作
查看工作区状态(有没有改变、改变有没有提交等):git status
查看文件修改内容:git diff (filename)
查看commit提交日志:git log
单行查看commit提交日志:git log --pretty=oneline
查看命令历史记录(可以通过此方法查看commit id):git reflog
查看当前分支:git branch
查看分支合并图:git log --graph
查看储藏列表:git stash list
查看远程仓库信息:git remote
查看远程仓库详细信息:git remote -v
查看所有标签,结果按字母排序:git tag
查看某个标签信息:git show (标签名)
查看两个节点的区别:git diff 版本号1 版本号2
查看两个节点具体文件的区别:git diff 版本号1 版本号2 文件/文件夹名
9.配置操作
配置全局用户名:git config --global user.name (用户名)
配置全局用户邮箱:git config --global user.email (用户邮箱)
生成ssh密钥:ssh-keygen -t rsa -C (用户邮箱)
配置每个字符串的别名:git config --global alias.(别名) (被替换的名)
删除别名:直接到.git/config文件中的[alias]下删除
不将某些文件加入到版本控制中:创建.gitignore文件,把要忽略的文件名写进去
10.注意
①合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。②在团队开发中,master分支应该是稳定的,仅用来发布新版本。干活都在dev分支上,团队的人都将自己的分支和dev分支合并,等到某个时候,dev再和master合并。③在开发中遇到bug要跳出当前分支去别的分支操作时,可以现在当前的工作区储藏起来④在多人合作时,当git push到远程仓库失败时,是因为远程仓库比你当前本地仓库要新,所以要先git pull,拉去远程仓库最新版到本地,如果如冲突要先解决冲突,然后再重新add、commit、push;如果提示“no tracking information”,则说明本地分支和远程分支的连接关系没有创建,要先将本地分支和远程分支建立连接。
小结
当多人合作时,你的开发流程:2017/1/4 更新① 假设项目仓库为A,fork一份到自己的仓库,为B② 将远程B仓库克隆到本地:git clone (远程仓库地址) ③ 进行修改,将修改添加到暂存区:git add (filename)或者git add ./④ 将暂存区的文件都提交:git commit -m "message"⑤ 检查本地仓库:git remote,你会发现有两个仓库origin是你自己的,upstream是你fork的即A⑥ 拉去一份A仓库最新版到本地:git pull upstream master,如果有冲突的话解决冲突,没有冲突就表示两个自动合并了⑦ 重新add和commit,即第③④步操作⑧ 将合并后的分支推送到远程分支:git push origin master⑨ 此时,代码被更新到你自己的仓库B,在github中发起一个pull request给仓库A⑩ 等待仓库A的所有者进行合并就完成了
- 【git】git学习笔记
- Git学习笔记-Git Branching
- Git学习笔记:Git命令
- git常用命令-Git学习笔记
- Git学习笔记--Git入门
- Git 学习笔记 --- 自定义Git
- git/github学习笔记
- git 学习笔记
- Git 学习笔记
- git学习笔记
- git 学习笔记
- Git学习笔记 - 1
- Git学习笔记
- Git学习笔记 - 1
- git/github学习笔记
- git学习笔记
- Git 学习笔记
- GIT之学习笔记
- java自学之路4
- Android四大基本组件介绍与生命周期
- PHP框架之ThinkPHP研究(0)
- Listview刷新数据
- 面试题总结
- git学习笔记
- 结构体排序
- openlayer实现仿各大地图的标注点触碰样式变换
- Apache kafka原理与特性
- Core Image 介绍
- unity学习笔记8
- 正则表达式--表达式全集
- 邻接表转换为邻接矩阵
- 虚拟机下安装CentOS,minimal版无法连接外网的问题