学习git笔记,git,最强大的版本管理工具,没有之一。
来源:互联网 发布:皮卡刻字机端口设置 编辑:程序博客网 时间:2024/05/21 05:42
初始化git仓库:
git init
自报家门:
git config --global user.name "xxxx"
git config --global user.email "xxxx"
把文件添加到仓库(添加前必须文件已存在):
git add readme.txt
提交到仓库:
git commit -m "xxxxx"
xxxxx:本次提交说明
查看目前git状态:
git status
察看提交历史记录:
git log
如果烟花缭乱,可以加上参数:
git log --pretty=oneline
回滚到上一版本:
git reset --hard HEAD^
再回到未来某个版本:
git reset --hard xxxxxxx
git提供了一个git reflog命令来记录你的每一次命令。
git reflog
git add实际上是把文件修改添加到暂存区
git commit实际上是把暂存区的所有内容提交到当前分支。
当你乱修改工作区的内容,想丢弃工作区的修改:
git checkout -- file
当你不但乱改了工作区的内容,还修改了暂存区的内容,想丢弃修改,分两步:
1:git reset HEAD file
2: git checkout -- file
假设你删除了某个文件,有两个选择,第一是你确实想删除某个文件,那就是:
git rm file
第二就是在你删错了,想还原,那就是:
git checkout -- file
创建sshkey:
ssh-keygen -t rsa -C "youemail@example.com"
接下来一路回车,生成两个文件:id_rsa是私匙,不能泄露。id_rsa.pub是公匙。可以放心告诉任何人
登陆github,add ssh key,title任意填写,key里边粘贴id_rsa.pub内容即可。
远端先创建一个仓库,点击Create a new repo,填写仓库名字learngit,其他默认,点击Create repository。
关联一个远程库:
git remote add origin git@github.com:guangmangdz/learngit.git
接下来再推送:
git push -u origin master,实际上就是把当前分支推送到远程。由于远端库是空的,所以加了-u参数,以后可以不加。
从现在起,只要本地做了提交,就可以通过命令:
git push origin master,把本地master分支最新更改推送之github。
从远程库克隆:
git clone git@github.com:xxxxxxxx/xxxxx.git
接下来:分支管理
创建分支,例如dev:
git checkout -b dev
也可以用一下两条命令创建:
git branch dev,创建dev分支
git checkout dev,切换到dev分支
列出当前分支:
git branch
合并分支:
git merge dev,操作前提是已经处于master分支状态
合并完成后,就可以放心的删除dev分支了:
git branch -d dev
察看git分支合并图:
git lob --graph
正常的合并是fast forward模式,当然也可以禁用:
git merge --no-ff -m "merge with no-ff" dev
首先,master分支应该是非常稳定的,也就是用来发布新版本,平时不用在上面干活。干活都在dev分支上,也就是说,你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,是不是的往dev分支上合并就可以了。
bug分支:
假如这种情况,你正在dev分支下写代码,但还没写完,又不能提交,而此时接到一个紧急处理bug的紧急任务,且该人物来源于master分支。可以先用git stash将当前工作现场储存起来。
bug解决完了,再回到dev分支,如何恢复现场?
1:git stash apply,恢复后,stash不删除,需要调用git stash drop
2: git stash pop,恢复同时把stash内容也删除。
feature分支:
开发过程中,有无穷无尽的新功能添加进来,但你不希望一些实验性质的代码把主分支搞乱了,所以,每添加一个新功能,最好新建一个feature分支,在上面开发。
git checkout -b feature
开发完成后,切回dev,准备合并
git checkout dev
但是!突然该功能要求取消,必须销毁这个分支:
git branch -d feature,正常的话会提示销毁失败,因为还未合并,所以就来了下面的命令:
git branch -D feature,强制删除一个分支
多人写作:
察看远程库信息:
git remote
加-v可以察看更详细的信息:
git remote -v
推送分支:
git push origin master
git push origin dev
你的小伙伴想在dev分支下开发,就必须创建远程origin的dev分支到本地:
git checkout -b dev origin/dev
多人写作工作模式通常如下:
1、首先,试图用git push origin branch-name推送自己的修改
2、如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并
3、如果合并有冲突,则解决冲突,并在本地提交
4、没有冲突或者解决冲突后,在用git push origin branch-name推送就能成功
5、如果git pull提示“no tracking infor...”,说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name
标签管理:
发布一个新版本时,通常大一个标签。这个标签唯一确定了打标签时刻的版本。标签也是版本库的一个快照。
git tag xxx
察看所有标签:
git tag
给历史某次提交的commit id打标签:
git tag vx.x xxxxxxx
创建带说明的标签:
git tag -a vx.x -m "tags shuoming" xxxxxxx
打错了标签,也可以删除:
git tag -d Vx.x
推送某个标签到远程:
git push origin vx.x
一次性推送所有未推送的标签到远程:
git push origin --tags
删除远程标签(需先删除本地标签):
git tag -d v0.9
git push origin :refs/tags/v0.9
让git显示颜色:
git config --global color.ui true
git可以忽略特殊文件,所有配置文件在:
https://github.com/github/gitignore
.gitignore文件本身也需要放到版本库里
最后说说搭建git服务器:
1、ubuntu或debian及其,安装git
sudo apt-get install git
2、创建一个git用户,用来运行git服务
sudo adduser git
3、创建证书登陆:
收集所有需要登陆的用户的公匙,把所有公匙导入到home/git/.ssh/authorized_keys文件里,易行一个。
4、初始化git仓库:
sudo git init --bare sample.git
5、把owner改为git:
sudo chown -R git:git sample.git
6、禁用shell登陆:编辑etc/passwd
git:x:1001:1001:,,,:/home/git:/bin/bash
改为
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
git init
自报家门:
git config --global user.name "xxxx"
git config --global user.email "xxxx"
把文件添加到仓库(添加前必须文件已存在):
git add readme.txt
提交到仓库:
git commit -m "xxxxx"
xxxxx:本次提交说明
查看目前git状态:
git status
察看提交历史记录:
git log
如果烟花缭乱,可以加上参数:
git log --pretty=oneline
回滚到上一版本:
git reset --hard HEAD^
再回到未来某个版本:
git reset --hard xxxxxxx
git提供了一个git reflog命令来记录你的每一次命令。
git reflog
git add实际上是把文件修改添加到暂存区
git commit实际上是把暂存区的所有内容提交到当前分支。
当你乱修改工作区的内容,想丢弃工作区的修改:
git checkout -- file
当你不但乱改了工作区的内容,还修改了暂存区的内容,想丢弃修改,分两步:
1:git reset HEAD file
2: git checkout -- file
假设你删除了某个文件,有两个选择,第一是你确实想删除某个文件,那就是:
git rm file
第二就是在你删错了,想还原,那就是:
git checkout -- file
创建sshkey:
ssh-keygen -t rsa -C "youemail@example.com"
接下来一路回车,生成两个文件:id_rsa是私匙,不能泄露。id_rsa.pub是公匙。可以放心告诉任何人
登陆github,add ssh key,title任意填写,key里边粘贴id_rsa.pub内容即可。
远端先创建一个仓库,点击Create a new repo,填写仓库名字learngit,其他默认,点击Create repository。
关联一个远程库:
git remote add origin git@github.com:guangmangdz/learngit.git
接下来再推送:
git push -u origin master,实际上就是把当前分支推送到远程。由于远端库是空的,所以加了-u参数,以后可以不加。
从现在起,只要本地做了提交,就可以通过命令:
git push origin master,把本地master分支最新更改推送之github。
从远程库克隆:
git clone git@github.com:xxxxxxxx/xxxxx.git
接下来:分支管理
创建分支,例如dev:
git checkout -b dev
也可以用一下两条命令创建:
git branch dev,创建dev分支
git checkout dev,切换到dev分支
列出当前分支:
git branch
合并分支:
git merge dev,操作前提是已经处于master分支状态
合并完成后,就可以放心的删除dev分支了:
git branch -d dev
察看git分支合并图:
git lob --graph
正常的合并是fast forward模式,当然也可以禁用:
git merge --no-ff -m "merge with no-ff" dev
首先,master分支应该是非常稳定的,也就是用来发布新版本,平时不用在上面干活。干活都在dev分支上,也就是说,你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,是不是的往dev分支上合并就可以了。
bug分支:
假如这种情况,你正在dev分支下写代码,但还没写完,又不能提交,而此时接到一个紧急处理bug的紧急任务,且该人物来源于master分支。可以先用git stash将当前工作现场储存起来。
bug解决完了,再回到dev分支,如何恢复现场?
1:git stash apply,恢复后,stash不删除,需要调用git stash drop
2: git stash pop,恢复同时把stash内容也删除。
feature分支:
开发过程中,有无穷无尽的新功能添加进来,但你不希望一些实验性质的代码把主分支搞乱了,所以,每添加一个新功能,最好新建一个feature分支,在上面开发。
git checkout -b feature
开发完成后,切回dev,准备合并
git checkout dev
但是!突然该功能要求取消,必须销毁这个分支:
git branch -d feature,正常的话会提示销毁失败,因为还未合并,所以就来了下面的命令:
git branch -D feature,强制删除一个分支
多人写作:
察看远程库信息:
git remote
加-v可以察看更详细的信息:
git remote -v
推送分支:
git push origin master
git push origin dev
你的小伙伴想在dev分支下开发,就必须创建远程origin的dev分支到本地:
git checkout -b dev origin/dev
多人写作工作模式通常如下:
1、首先,试图用git push origin branch-name推送自己的修改
2、如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并
3、如果合并有冲突,则解决冲突,并在本地提交
4、没有冲突或者解决冲突后,在用git push origin branch-name推送就能成功
5、如果git pull提示“no tracking infor...”,说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name
标签管理:
发布一个新版本时,通常大一个标签。这个标签唯一确定了打标签时刻的版本。标签也是版本库的一个快照。
git tag xxx
察看所有标签:
git tag
给历史某次提交的commit id打标签:
git tag vx.x xxxxxxx
创建带说明的标签:
git tag -a vx.x -m "tags shuoming" xxxxxxx
打错了标签,也可以删除:
git tag -d Vx.x
推送某个标签到远程:
git push origin vx.x
一次性推送所有未推送的标签到远程:
git push origin --tags
删除远程标签(需先删除本地标签):
git tag -d v0.9
git push origin :refs/tags/v0.9
让git显示颜色:
git config --global color.ui true
git可以忽略特殊文件,所有配置文件在:
https://github.com/github/gitignore
.gitignore文件本身也需要放到版本库里
最后说说搭建git服务器:
1、ubuntu或debian及其,安装git
sudo apt-get install git
2、创建一个git用户,用来运行git服务
sudo adduser git
3、创建证书登陆:
收集所有需要登陆的用户的公匙,把所有公匙导入到home/git/.ssh/authorized_keys文件里,易行一个。
4、初始化git仓库:
sudo git init --bare sample.git
5、把owner改为git:
sudo chown -R git:git sample.git
6、禁用shell登陆:编辑etc/passwd
git:x:1001:1001:,,,:/home/git:/bin/bash
改为
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
1
上一篇:linux device注册
下一篇:模电的一些零碎问题,不定期更新
相关热门文章
- android学习--适配器和AsyncTa...
- 黛莱美面膜怎么样?黛莱美官网...
- Win8电脑D盘的文件丢了怎么办...
- 一剂强心针过后房地产效果欠佳...
- Win8电脑D盘的文件丢了怎么办...
- linux 常见服务端口
- 【ROOTFS搭建】busybox的httpd...
- xmanager 2.0 for linux配置
- 什么是shell
- linux socket的bug??
- 现在的博客积分不会更新了吗?...
- shell怎么读取网页内容...
- ssh等待连接的超时问题...
- curl: (56) Recv failure: Con...
- CACTI 不能安装WINE,怎么办?...
给主人留下些什么吧!~~
评论热议
0 0
- 学习git笔记,git,最强大的版本管理工具,没有之一。
- Git版本管理工具的学习
- git版本管理工具学习
- 版本控制管理工具--git的学习记录
- Git学习(一) 版本管理工具
- Git学习(一) 版本管理工具
- Git版本管理工具的使用
- git版本管理工具的上手
- Git版本管理工具的使用
- 版本管理工具git的使用
- 版本管理工具git的使用
- git源码管理工具学习笔记
- Git学习笔记之一
- 对比SVN学习GIT版本管理工具
- 对比SVN学习GIT版本管理工具
- 对比SVN学习GIT版本管理工具
- 【转】对比SVN学习GIT版本管理工具
- 对比SVN学习GIT版本管理工具
- 关于cdev platform以及class的一点见解
- linux cdev详解
- linux bus总线
- linux class device
- linux device注册
- 学习git笔记,git,最强大的版本管理工具,没有之一。
- 模电的一些零碎问题,不定期更新
- 1.the linux device model--kobject kset
- 2.the linux device model--bus device driver
- LCS LIS LCIS 字符串编辑距离 专题
- python多线程编程(五)
- 最小区间
- 2014秋C++第10周项目2参考-M$pszi$y是嘛意思
- hdu 5086 Revenge of Segment Tree(BestCoder Round #16)
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
华为mate10捡到怎么办
华为mate10丢失怎么办
华为mate9发烫怎么办
钢化膜翘起怎么办
小米6钢化膜白边怎么办
手机钢化膜起边怎么办
钢化膜边不黏了怎么办
华为p10贴膜白边怎么办
苹果手机屏幕黄怎么办
twrp找不到zip怎么办
华为手机发烫怎么办
oppoa31忘记密码怎么办
华为麦芒四费电怎么办
vivo手机信号差怎么办
移动没信号怎么办
华为手机信号差怎么办
华为无服务怎么办
苹果电脑磕碰了怎么办
ipad掉漆怎么办
苹果笔记本磕掉漆怎么办
个人档案袋拆封怎么办
面粉厂怎么办环评
环保生产许可证怎么办
新生儿发热37.5怎么办
硅胶壳发黄怎么办
手机外壳摔掉漆怎么办
酷派内存不足怎么办
oppoa59s发热怎么办
手臂很瘦怎么办
孔表带长怎么办
手腕子腱鞘炎怎么办
华为nova2p卡怎么办
华为摄像头模糊怎么办
卡槽弹不出来怎么办
华为手机卡针打不开卡槽怎么办
sim卡槽弹不出来怎么办
电话卡识别不了怎么办
荣耀8手机卡怎么办
华为手机卡得很怎么办
电信网速不好怎么办
刷机包是rar的 怎么办