Git学习笔记
来源:互联网 发布:实战linux编程精髓 编辑:程序博客网 时间:2024/05/21 06:28
Git的学习笔记
Git教程–廖雪峰
开始
# 创建一个目录mkdir git_profile# 进入目录cd git_profile# 将目录初始化为一个git仓库git init
当在git_profile目录中新建了一个文件之后,他没有自动添加到git仓库中,需要执行git add
命令才能添加文件进git仓库中,git commit
则表示提交文件到git仓库
# 添加readme.txt文件到git仓库中git add readme.txt# 添加当前目录下所有文件到git仓库中git add .# 提交文件到git仓库中, 表示提交上次添加的所有文件到git仓库,-m 后面接的是此次提交文件的提示信息,可以理解为备注git commit -m "first commit"
一些命令
# 查看仓库状态git status# 查看readme.txt文件改变内容git diff readme.txt# 查看提交日志git log# 查看简略提交日志git log --pretty=oneline
概念
HEAD
表示当前版本,上一个版本是HEAD^
,上上个版本是HEAD^^
,往上一百个版本HEAD~100
工作区指的是当前目录
版本库指的是工作区中的隐藏目录.git
git add
命令是将提交的修改放到暂存区(Stage) git commit
命令是将所有暂存区的修改提交到分支
# 回退上一个版本git reset --hard HEAD^# 利用git log,找到commit id,回到指定版本git reset --hard <commit id># 记录每一次git命令git reflog
# 查看工作区和版本库最新版本的区别git diff HEAD -- readme.txt
# 丢弃工作区readme.txt的修改git checkout -- readme.txt# 具体含义是指:将readme.txt在工作区的修改全部撤销# 将暂存区的修改撤销掉(unstage),重新将readme.txt回复到HEAD的readme.txtgit reset HEAD readme.txt
关于删除文件
# 删除版本库中的test.txt文件git rm test.txt# 然后提交修改git commit -m "rm test.txt"# 删错之后将文件恢复到最新版本git checkout -- test.txt
远程仓库
Github和coding
本地生成ssh key
# 创建SSH key,替换email地址ssh-keygen -t rsa -C "youremail@example.com"# 在用户主目录中找到.ssh/id_rsa.pub,复制其内容cat ~/.ssh/id_rsa.pub# 在Github或者coding中找到Add SSH Key,填上任意名字Title,Key里面粘贴刚刚复制的id_rsa.pub内容
关联本地git仓库与远程仓库
# git@github.com替换为远程仓库账号# name替换为远程仓库的名字# profile.git替换为远程仓库的名字git remote add origin git@github.com:name/profile.git# 推送本地所有内容推送到远程仓库上# 第一次推送需要加上-u参数,之后再次提交则可去掉-u参数git push -u origin master
从远程仓库克隆到本地
# git@github.com替换为远程仓库账号# name替换为远程仓库的名字# profile.git替换为你需要克隆的项目git clone git@github.com:name/profile.git# 同步更新远程仓库到本地仓库上git pull
管理分支
# 创建dev分支,并且切换到dev分支git checkout -b dev# git checkout 加上 -b 参数表示创建并切换,同下面两条命令实施git branch devgit checkout dev# git branch查看当前分支git branch# 切换为master分支git checkout master# dev分支合并到master分支git merge dev# 删除dev分支git branch -d dev
解决冲突
# 查看冲突文件git status# 查看分支合并情况git log --graph
合并分支但不丢掉分支信息
# 合并dev分支,使用--no-ff表示禁用Fast forward git merge --no-ff -m "merge with no-ff" dev
修复bug分支
# 新建分支,在分支上修改buggit checkout -b issue-1# 修复完bug之后,切换到master分支git checkout master# 合并分支,并删除issus-1分支git checkout mastergit branch -d issue-1# 切换到dev分支上继续工作git checkout dev# 需要使用git stash命令查看、恢复、删除# git将之前的工作区存在了某个地方,需要恢复git stash list # 查看stash内容git stash pop # 恢复同时删除stash内容git stash apply # 恢复后不删除stash内容
Feature分支
# 新建一个feature分支git checkout -b feature# 添加完内容之后,提交内容git commit -m "add something"# 切回分支,删除分支git checkout devgit branch -d feature# 删除失败,强行删除分支git branch -D feature
多人协作
# 查看远程库的信息git remote# 查看更加详细的信息git remote -v# 推送分支git push origin master# 推送dev分支git push origin dev# 抓取分支,首先clone项目,默认情况下只能看到本地master分支git clone xxx# 开发dev分支,创建远程origin的dev分支到本地git checkout -b dev origin/dev# 如果git push失败,需要git pull# git pull也失败,需要指定本地dev分支与远程origin/dev分支的链接git branch --set-upstream dev origin/dev
标签管理
添加标签
# 给当前分支打一个新标签,名为v1.0git tag v1.0# 查看所有标签git tag# 给之前的commit打上标签,需要找到历史提交的commit id,之后打上标签git log --pretty=oneline --abbrev-commitgit tag v0.9 <commit id># 查看标签信息git show v0.9# 创建带说明的标签git tag -a v0.1 -m "version 0.1" <commit id># 通过-s用私钥签名一个标签git tag -s v0.2 -m "version 0.2" <commit id>
操作标签
所有创建的标签都只存储在本地,不会自动推送到远程,打错的标签可以在本地安全删除
# 删除标签git tag -d v0.1# 推送标签到远程git push origin <tagname># 一次性推送全部尚未推送到远程的本地标签git push origin --tags# 删除远程标签# 删除本地的标签git tag -d v0.9# 再删除远程,v0.9可替换为<tag name>git push origin :refs/tags/v0.9
推送的时候记住密码
>>>vim .git/config# 最后加入下面内容[credential] helper = store
阅读全文
0 0
- 【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面试题四
- 二次采样 OOM的克星
- js 闭包常见的两种情况的简单解析
- Git学习笔记
- 异步提交表单的应用---异步上传图片
- Java面试题五
- 操作系统学习笔记
- 文章标题
- Python GUI布局尺寸适配
- 字符串空格的处理
- java线程
- OKHttp网络请求封装