代码管理工具Git基础
|字数总计:1.1k|阅读时长:3分钟|阅读量:|
2020.9.1 更新
推荐一个学习Git命令的非常棒的在线工具:https://learngitbranching.js.org/
前言
Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 Git是Linus Torvalds为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git的功能特性,从一般开发者的角度来看,git有以下功能:
- 从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。
- 在自己的机器上根据不同的开发目的,创建分支,修改代码。
- 在单机上自己创建的分支上提交代码。
- 在单机上合并分支。
- 把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。
- 生成补丁(patch),把补丁发送给主开发者。
- 看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。
- 一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。
安装
1
| $ sudo apt-get install git
|
新建和初始化本地库
从服务器上clone代码
ADDRESS就是项目地址
查看新文件
添加更改
1 2
| $ git add filename $ git add . //用通配符提交所有更改
|
配置用户名和邮箱
1 2
| $ git config --global user.email EMAIL $ git config --global user.name NAME
|
“EMAIL” 即你的 email 地址,“NAME” 则是你的用户名
提交更改说明
1
| $ git commit -m “Descriptive Message”
|
“Descriptive Message” 即为你的提交的描述性信息
创建新分支
1 2
| $ git checkout -b BRANCH $ git branch //查看是否创建了新分支
|
“BRANCH” 即为你新分支的名字
远程推送
1 2 3
| $ git remote add origin URL //“URL” 即为远程仓库地址 $ git push -u origin +master //+号是在本地没有整合下强制提交 $ git remote rm origin //删除远程origin
|
建立远程和本地仓库的链接
1
| $ git push --set-upstream origin master
|
将本地分支追踪到上游相应的分支
1
| $ git branch --set-upstream-to=origin/<分支> master
|
拉取更新
1 2
| $ git pull origin master $ git pull
|
撤销推送
已经执行git add
和git commit
1
| git reset --hard origin/master
|
注意:远程仓库会直接覆盖本地仓库
基本语法
1 2 3 4 5
| $ git [--version] [--help] [-C <path>] [-c name=value] [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path] [-p | --paginate | --no-pager] [--no-replace-objects] [--bare] [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>] <command> [<args>]
|
基本命令简述
开始一个工作区
参见:git help tutorial
1 2
| clone 克隆一个仓库到一个新目录 init 创建一个空的 Git 仓库或重新初始化一个已存在的仓库
|
在当前变更上工作
参见:git help everyday
1 2 3 4
| add 添加文件内容至索引 mv 移动或重命名一个文件、目录或符号链接 reset 重置当前 HEAD 到指定状态 rm 从工作区和索引中删除文件
|
检查历史和状态
参见:git help revisions
1 2 3 4 5
| bisect 通过二分查找定位引入 bug 的提交 grep 输出和模式匹配的行 log 显示提交日志 show 显示各种类型的对象 status 显示工作区状态
|
扩展、标记和调校您的历史记录
1 2 3 4 5 6 7
| branch 列出、创建或删除分支 checkout 切换分支或恢复工作区文件git commit 记录变更到仓库 diff 显示提交之间、提交和工作区之间等的差异 merge 合并两个或更多开发历史 rebase 在另一个分支上重新应用提交 tag 创建、列出、删除或校验一个 GPG 签名的标签对象
|
协同
参见:git help workflows
1 2 3
| fetch 从另外一个仓库下载对象和引用 pull 获取并整合另外的仓库或一个本地分支 push 更新远程引用和相关的对象
|