天天看点

GIT 代码版本控制Git

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 教程