Git
Git 是一个分布式版本控制系统
分布式 版本控制系统(Version Control System),用于敏捷高效的管理任何或大或小的项目。
使用 Git 的基本流程
git init
git add remote <远程库的地址:ssh 地址不需要每次都填写密码;http 地址每次都得填密码>
git add . # 提交所有文件
git commit -m "本次编辑的信息"
git checkout -b dev # 新建一个分支并切换 新建 dev 分支是防止合并出错,或者其他原因导致不想使用修改的这些代码,可以方便随时不要
git checkout master # 切换到 master 分支上
git pull # 拉取远程仓库上与当前分支对应的分支代码
# 如有冲突,修改冲突 检查好没问题
git push # 推送到远程默认分支上
Git 命令详细记录
这里只做常用的命令记录,方便查阅
git config
用于查看配置文件
配置文件的权重 local(仓库 .git/config) > global(全局 ~/.gitconfig) > system(系统)
# 列出配置文件内容 --list 简写 -l
git config [--local | --global | --system] -l
# 编辑配置文件 --edit 简写 -e; 默认编辑 --local
git config [--local|--flobal|--system] -e
# 添加一条配置项
git config --global --add section.key value
git config --global section.key value
# 查看某个配置项的值 section.key 如 user.name
git config --global --get section.key
git config --global section.key
git config 查看配置文件
merge
git仅仅关注共同祖先节点以及两个分支的HEAD节点,而不是两个分支的所有节点。因此,合并算法将会把被回退的部分认为成没有变化,这样,合并后的结果就会变为另一个分支中变化的部分
# 当合并分支出现冲突后,终止当前合并(尝试返回到未合并前的状态)
git merge --abort
git commit
# 单引号编辑多行信息
git commit -m '简短标题
>
>正文
>'
commit 注释修改
git tag 标签
# 给以前的 commit 补打标签
git tag -a <v1.0.0 tag name> <commit_id>
# 显示标签列表
git tag
# 列出标签及说明
git tag -n
# 新建一个标签;默认HEAD [ 指定一个 commit id (简写也行)]
git tag <tagname> [ commitId ]
# 创建带有说明的标签
git tag -a <tagname> -m "标签信息"
# 在 vim编辑器(默认编辑器) 中编写标签信息
git tag -a <tagname> 回车
# 删除标签
git tag -d <old-tag_name>
# 搜索 v 开头的标签
git tag -l "v*"
git rebase 合并多个 commit
# 合并前两次的提交;进入 vim 修改界面
git rebase -i HEAD~2
# 合并到 <commit-id>的提交;进入 vim 修改界面
git rebase -i <commit-id>
git rm 移除文件
暂存区(git status: 显示红色):add 命令后,修改放入暂存区
工作区(git status: 显示绿色):add 命令前,在工作区修改文件
# 删除暂存区或分支上的文件, 同时工作区也不需要这个文件了
git rm file_path
# 删除暂存区或分支上的文件, 但本地又需要使用, 只是不希望这个文件被版本控制
git rm --cached file_path
git blame 查找当前行的修改在哪次提交上
# 显示第5 ~ 10 行的提交信息
git blame -L 5,10 index.html
# 显示指定文件的提交信息
git blame index.html
参考文章
廖雪峰 - Git 教程