第十二讲 Git 远程标签
Git 远程标签远程标签
列出本地的所有标签1git tag
创建一个轻量级标签1git tag v1.0
创建带注释的标签1git tag -a v2.0 -m 'v2.0 released'
查看标签内容1git show v1.0
搜索标签1git tag -l 'v' # 利用通配符
推送标签到远程123git push origin v1.0git push origin v1.0 v2.0 # 少数标签git push origin --tags # 将标签 批量推送到远程
删除远程标签12git push origin :refs/tags/v1.0git push origin --delete tag v1.0
将本地标签推送到远程的完整语法1git push origin refs/tags/v1.0:refs/tags/v1.0
只从远程拉取标签1git fetch origin tag v1.0
只从远程拉取标签1git fetch origin tag v1.0
显示远程信息1git remote origin show ...
第十一讲 Git refspec
Git refspecGit 别名
配置别名12345git config --global alias.br branch # 配置信息在 ~/.gitconfig 文件下git config --global alias.st statusgit config --global alias.co checkoutgit config --global alias.unstage 'reset HEAD'git config --global alias.ui '!git'
Git refspecgit push 相关操作
git push 操作的完整命令1git push origin srcbranch:destbranch # 建议的 git push 命令
将本地分支推送到远程12345git push --set-upstream origin branch_name # 将本地分支推送到远程(默认远程分支名与本地一样)git push -u origin branch_name # 跟上一条命令一样效果git push --set ...
第十讲 Git 远程操作与 Git 协作
Git 远程操作与 Git 协作Git 远程操作
建立 SSH 安全连接123456789101112# 1.配置远程git remote add orgin git@github.com:repository_name/repository_name.git # 远程仓库 SSH 链接地址git remote show orgin# 2.把公钥放置远程cd .sshlsvi known_hostswhich ssh-keygen # 生成公钥ssh-keygen # 生成公钥(敲入命令回车,要求输入密码连续两次回车)ls id_rsa.pub # 进入公钥文件夹(把公钥粘贴放置 GitHub 中 settings 的 Deploy keys 上面)# 3.把本地分支推送到远程git push -u orgin master # 将本地的 master 分支推送到远程
查看所有远程仓库的别名1git remote show
查看远程仓库所有信息1git remote show repository_name
重命名远程仓库1git remote rename origin origin ...
第九讲 远程与 GitHub
远程与 GitHub远程版本库(GitHub)
Github 官网网址
注册账号: 利用邮箱注册账号(公共仓库)
将本地仓库推送到 GitHub 上
初始化仓库1git init repository_name
配置信息12git config --global user.name 'name'git config --global user.email 'email'
修改配置的命令12git config --unset user.namegit config --unset user.email
修改文件
将修改纳入暂存区
进行提交
本地版本库推送
对 GitHub 进行配置
新建 README.md 进行说明,并提交到本地版本库
现在网页上创建一个远程仓库
推送到远程命令12git remote add origin https://github.com/repository_name.git # 远程仓库 urlgit push -u origin master # 将本地的 master 分支推送到远程
第八讲 标签与 diff
标签与 diffGit 标签
新建标签,标签有两种:轻量级标签(lightweight)与带有附注标签(annotated)。
创建一个轻量级标签
创建一个带附注的标签1git tag -a v1.02 -m 'release version'
查看所有标签1git tag
查找标签(模糊查找和精确查找)1git tag -l 'v1.0'
删除标签1git tag -d tag_name
git blame 命令(定位文件修改的信息)1git blame file # 可以查看该文件所有修改者信息
diff系统自带的 diff
系统自带 diff 对比文件差别1diff file_1 file_2
详细系统自带 diff 对比文件差别1diff -u file_1 file_2
Git 中 diff
进行工作区与暂存区之间的文件差别对比: 暂存区文件作为原始文件1git diff # 比较的是暂存区与工作区文件之间的差别(将工作区文件修改,暂存区不动,进行差异性比较。)
进行工作区与特定 commit_id 之间文件的差别比较: 版本库的 ...
第七讲 checkout 进阶与 stash
checkout 进阶与 stashcheckout 进阶
丢弃工作目录的变更1git checkout -- file
从暂存区取消暂存1git reset HEAD file
checkout 切换分支12git checkout new_branch # 切换分支git checkout -b new_branch # 创建分支并切换分支
利用 checkout 回退版本(HEAD 处于游离状态)1git checkout commit_id # 此时指针处于游离状态
接着利用下一命令可以将游离的指针,移到创建分支1git checkout -b new_branch
分支改名1git branch -m branch_1 branch_2
stash
将当前分支的所有修改临时保存起来1git stash
查看所有保存状态1git stash list
提交临时保存说明1git stash save 'message'
将临时保存状态恢复出来,并把这个保存状态删除掉1git stash poo
将临时保存状态恢复出来,不把这个保存状态删除掉1git sta ...
第六讲 分支进阶与版本回退
分支进阶与版本回退Fast-Forward
如果可能,合并分支时 Git 会使用 fast-forward 模式。
在这种模式下,删除分支时会丢掉分支信息
合并时加上 –no-ff 参数会禁用 fast-forward ,这样会多出一个 commit id1git merge --no-ff new_branch
查看 log12git log --graph # 以图形化的方式git log --graph --abbrev-commit # log 日志中 commit_id 信息简写
版本回退
把当前文件目录下的所有文件放入暂存区,然后提交1234git commit -am 'add another line' # 上述命令等价于以下两命令之和git add .git commit -m 'add another line'
回退到上一版本12git reset --hard HEAD^git reset --hard HEAD~1
返回到某一版本12git reflog # 查看操作日志,查看版本的 commit_idgit res ...
第五讲 .gitignore 与分支
.gitignore 与分支.gitignore
文件忽略: .gitignore12345*.a # 忽略所有 .a 结尾的文件!lib.a # 但 lib.a 除外/TODO # 仅仅忽略项目根目录下的 TODO 文件,但不包括 subdir/TODObuild/ # 忽略 build/ 目录下的所有文件doc/*.txt # 会忽略 doc/notes.txt ,但不包括 doc/server/arch.txt
通过网站生成常用的 .gitignore 文件
网站链接
一些重要的命令
删除目录12rmdir mydir # 不常用,要求目录是空目录rm -rf mydir
拼接两条命令1mkdir mydir && cd mydir # 创建目录并进入该目录
Git 分支
分支的一些概念
一个 commit 对象链:一条工作记录线(只有一个分支)
HEAD 指向的是当前分支
master(分支名)指向当前分支的最后一次提交
分支的合并形式:快进-fast forward
master 分支没有做修改,另一分支做修改,合并形 ...
第四讲 Git 添加、删除、修改与日志
Git 添加、删除、修改与日志Git 常用命令
创建文件(利用 echo)1echo 'hello world' > file # 文件重定向
删除文件1git rm file # 先删除文件并把这次修改纳入暂存区。
利用 git rm 删除文件可以利用以下两次命令恢复12git reset HEAD file # 将文件从暂存区回退到工作区git checkout -- file # 将工作区的文件修改全部丢弃(未纳入暂存区的文件修改)
删除文件(系统命令 rm)1rm file # 删除文件但并未把这次修改纳入暂存区
利用系统命令 rm 删除文件可以利用以下一条命令恢复1git checkout -- file # 将工作区的文件修改全部丢弃(未纳入暂存区的文件修改)
利用 git mv 进行文件重命名: 将原文件删除并创建一个新的和原文件一样的文件并把这次修改纳入暂存区1git mv file file_1 # 先将文件进行重命名并把这次修改纳入暂存区
利用 git mv 进行文件重命名可以利用以下操作恢复1234git reset HEAD fileg ...
第三讲 Git 重要命令操练
Git 重要命令操练Git 常用命令
获得版本库12git init # 版本库初始化(本地创建 git 版本库)git clone # 克隆远程版本库
版本管理123git add # 将已修改的文件从工作区纳入到暂存区git commit # 将暂存区文件提交到 git 本地版本库git rm # 删除文件
查看信息123git help # 查看 git 命令使用git log # 查看日志git diff # 查看文件不同状态的差异
远程协作12git pull # 将远程版本库当中的文件拉到本地git push # 将本地版本库当中的版本内容推送到远程
查看工作区状态1git status
将文件从暂存区回退到工作区1git rm --cached file
将文件从暂存区提交到本地版本库1git commit -m '提交消息'
查看提交历史
Git 的提交(commit id)是一个在摘要值。这个摘要值实际是 sha1 计算出来的1git log
配置信息
对于 user.name 和 user.email 来说,有三个地方可以设置123 ...