Git 学习笔记(1)
2017-08-24 15:32
302 查看
Git 学习笔记(1)
@([12] git)原文链接:http://blog.csdn.net/TJUT_shadow/article/details/77530637
创建版本库
在当前目录新建一个Git代码库:git init
新建一个目录,将其初始化为Git代码库:
git init [project-name]
下载一个项目和它的整个代码历史:
git clone
提交缓存区指定文件到仓库区:git commit <file> -m "message"
提交工作区自上次commit之后的变化,直接到仓库区:git commit -a分支管理
查看分支:git branch
创建分支 :git branch <name>
切换分支 :git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>Bug分支
隐藏当前工作现场:git stash
回到工作现场:git stash pop恢复时把stash内容也删除了
查看隐藏现场列表:git stash list
回到指定工作现场:git stash apply stash@{编号}恢复后stash内容并不删除,需要git stash drop来删除除,需要git stash drop来删除
删除stash内容:git stash dropFeature 分支
新的开发功能最好新建一个分支,在开发完成后再合并到主分支上。
如果需要丢弃一个没有被合并过的分支,需要强行删除分支
强行删除分支:git branch -D <name>分支策略
master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;
dev是干活的分支,大家从自己的分支时不时的向dev分支上合并git merge --no-ff -m"merger with no-ff" dev合并分支时加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能够看出来曾经做过合并。fast forward合并无法看出曾经做过合并。
本地新建的分支如果不推送到远程,对其他人就是不可见的。哪些分支需要推送
master分支是主分支,因此需要时刻与远程同步
dev分支是开发分支,团队所有成员都需要在上面工作,所以需要与远程同步
bug分支用于在本地修复bug,没必要推送远
feature分支是否推到远程,取决于与你合作的是否在上面开发多人协作的工作模式
首先,可以试图用git push origin branch-name推送自己的修改
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
如果合并有冲突,则解决冲突,并在本地提交
没有冲突或者解决掉冲突后,再用git push origin branch-name 推送就能成功
如果git pull提示“no tracking information” 则说明本地分支和远程分支的链接关系没有创建,用命令git branch –set-upstream branch-name origin/branch-name远程同步
关联一个远程仓库:git remote add origin 仓库路径eg. git remote add origin https://github.com/EricLee0107/learngit.git[/code]
第一次推送master分支的所有内容:git push -u origin master
之后每次修改推送:git push origin master
取回远程仓库的变化,并与本地分支合并:git pull [remote] [branch]
上传本地指定分支到远程仓库:git push [remote] [branch]
-强行推送当前分支到远程仓库,即使有冲突:git push [remote] --force
推送所有分支到远程仓库:git push [remote] --all查看信息
查看仓库当前的状态:git status
查看文件修改:git diff
查看提交历史:git log
查看命令历史:git reflog
查看分支合并图:git log --graph
git在解决合并冲突时的做法是先将冲突合并起来,然后再手动修改冲突,重新提交,解决冲突。
显示所有远程仓库:git remote -v- 显示某个远程仓库的信息:
git remote show [remote]撤销操作
回退到某个特定版本:git reset --hard commit_id
撤销(丢弃)工作区修改 :git checkout --file
撤销缓存区修改:git reset HEAD file
如果修改已经提交到缓存区则需要先从缓存区撤销修改,再从工作区撤销修改.git 版本
当前版本:HEAD
上一个版本:HEAD^
上上个版本:HEAD^^
上N个版本:HEAD~N标签
新建标签:git tag <name>默认为HEAD,也可以指定一个commit id;
指定标签信息:git tag -a <tagname> -m"blablabla..."
用PGP签名标签:git tag -s <tagname> -m"blabla..."
查看所有标签:git tag
推送一个本地标签:git push origin <tagname>
推送全部未推送过的本地标签:git push origin --tags
删除一个本地标签:git tag -d <tagname>
删除一个远程标签:git push origin :refs/tags/<tagname>
删除远程标签前需要先删除本地标签其他
忽略某些文件时,需要编写.gitignore (工作区根目录下)
.gitignore 文件本身要放到版本库例,并且可以对其做版本管理
配置参考 [url=https://github.com/github/gitignore]https://github.com/github/gitignore" target=_blank>[/code]
git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快增/删文件
添加指定文件到缓存区:git add<file>
添加指定目录到缓存区:git add [dir]
改名文件,并且将这个改名放入暂存区:git mv [file-original] [file-renamed]- 添加当前目录的所有文件到暂存区:
git add代码提交
提交缓存区修改到仓库区:git commit -m "message"
提交缓存区指定文件到仓库区:git commit <file> -m "message"
提交工作区自上次commit之后的变化,直接到仓库区:git commit -a分支管理
查看分支:git branch
创建分支 :git branch <name>
切换分支 :git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>Bug分支
隐藏当前工作现场:git stash
回到工作现场:git stash pop恢复时把stash内容也删除了
查看隐藏现场列表:git stash list
回到指定工作现场:git stash apply stash@{编号}恢复后stash内容并不删除,需要git stash drop来删除除,需要git stash drop来删除
删除stash内容:git stash dropFeature 分支
新的开发功能最好新建一个分支,在开发完成后再合并到主分支上。
如果需要丢弃一个没有被合并过的分支,需要强行删除分支
强行删除分支:git branch -D <name>分支策略
master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;
dev是干活的分支,大家从自己的分支时不时的向dev分支上合并git merge --no-ff -m"merger with no-ff" dev合并分支时加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能够看出来曾经做过合并。fast forward合并无法看出曾经做过合并。
本地新建的分支如果不推送到远程,对其他人就是不可见的。哪些分支需要推送
master分支是主分支,因此需要时刻与远程同步
dev分支是开发分支,团队所有成员都需要在上面工作,所以需要与远程同步
bug分支用于在本地修复bug,没必要推送远
feature分支是否推到远程,取决于与你合作的是否在上面开发多人协作的工作模式
首先,可以试图用git push origin branch-name推送自己的修改
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
如果合并有冲突,则解决冲突,并在本地提交
没有冲突或者解决掉冲突后,再用git push origin branch-name 推送就能成功
如果git pull提示“no tracking information” 则说明本地分支和远程分支的链接关系没有创建,用命令git branch –set-upstream branch-name origin/branch-name远程同步
关联一个远程仓库:git remote add origin 仓库路径eg. git remote add origin https://github.com/EricLee0107/learngit.git[/code]
第一次推送master分支的所有内容:git push -u origin master
之后每次修改推送:git push origin master
取回远程仓库的变化,并与本地分支合并:git pull [remote] [branch]
上传本地指定分支到远程仓库:git push [remote] [branch]
-强行推送当前分支到远程仓库,即使有冲突:git push [remote] --force
推送所有分支到远程仓库:git push [remote] --all查看信息
查看仓库当前的状态:git status
查看文件修改:git diff
查看提交历史:git log
查看命令历史:git reflog
查看分支合并图:git log --graph
git在解决合并冲突时的做法是先将冲突合并起来,然后再手动修改冲突,重新提交,解决冲突。
显示所有远程仓库:git remote -v- 显示某个远程仓库的信息:
git remote show [remote]撤销操作
回退到某个特定版本:git reset --hard commit_id
撤销(丢弃)工作区修改 :git checkout --file
撤销缓存区修改:git reset HEAD file
如果修改已经提交到缓存区则需要先从缓存区撤销修改,再从工作区撤销修改.git 版本
当前版本:HEAD
上一个版本:HEAD^
上上个版本:HEAD^^
上N个版本:HEAD~N标签
新建标签:git tag <name>默认为HEAD,也可以指定一个commit id;
指定标签信息:git tag -a <tagname> -m"blablabla..."
用PGP签名标签:git tag -s <tagname> -m"blabla..."
查看所有标签:git tag
推送一个本地标签:git push origin <tagname>
推送全部未推送过的本地标签:git push origin --tags
删除一个本地标签:git tag -d <tagname>
删除一个远程标签:git push origin :refs/tags/<tagname>
删除远程标签前需要先删除本地标签其他
忽略某些文件时,需要编写.gitignore (工作区根目录下)
.gitignore 文件本身要放到版本库例,并且可以对其做版本管理
配置参考 [url=https://github.com/github/gitignore]https://github.com/github/gitignore
相关文章推荐
- Git学习笔记(6)——Bug和Feature分支
- Git学习笔记
- GIT学习笔记——1.1 起步 - 关于版本控制
- github快速使用指南—git学习笔记
- git学习笔记
- Git学习笔记_01(基本常用命令)
- Git学习笔记(一)
- Git学习笔记五--分支管理
- Git学习笔记
- Git学习笔记.
- git学习笔记-1
- 【Git学习笔记】只有add之后的修改才能被commit
- git 学习笔记二-- 进阶命令的使用
- 【Git学习笔记】删除文件及文件夹,并push到远程库
- 【Git学习笔记】创建和合并分支
- Git学习笔记与IntelliJ IDEA整合
- Git和GitHub学习笔记
- git学习笔记
- Git学习笔记
- 学习笔记_Git之CodeReview流程