git 操作文档
1 git 基本介绍
Git的主要优点:
-
对非线性开发有非常强的支持
-
分布式、协作式开发处理代码冲突的能力强
-
数据结构更优,更适合管理大规模工程
-
社区更活跃,生态更完整
1.1 git 的提交流程
在 Git 中的文件有三种状态:已提交(committed): 表示数据已经安全的保存在本地数据库中;已修改(modified): 表示修改了文件,但还没保存到数据库中;已暂存(staged): 表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中
2 git 本地仓库基本操作
2.1 环境配置
# 设置用户信息 git config --global user.name "wangdong" git config --global user.email "wangdong1328@163.com" # 查看配置信息 git config --list git config user.name git config user.email # 通过命令设置的信息会保存在~/.gitconfig 文件中
2.2 初始化本地仓库
# 初始化本地仓库 git init # 初始化仓库不带工作区 git init --bare
2.3 克隆 clone
# 从远程仓库克隆 git clone 远程仓库克隆 例如: git clone https://github.com/wangdong1328/C-Projects.git
2.4 查看状态 status
# 查看状态 git status # 查看状态 使输出信息更加简洁 git status -s # 查看提交状态 git log # 查看修改内容 git diff # 查看已暂存的改动 git diff --cached
2.5 添加进缓存区 add
# 将未跟踪的文件加入暂存区 git add . 增加目录下所有的文件 git add <文件名> 增加文件 # 将暂存区的文件取消暂存 取消add git reset <文件名> git reset HEAD #取消暂存
2.6 提交到本地仓库 commit
# git commit 将暂存区的文件修改提交到本地仓库 git commit -m "日志文件"
2.7 删除rm
# 从本地工作区 删除文件 git rm <文件名> # 如何本工作区库误删,想要回退 git checkout head <文件名> # 撤销对文件的修改,也就是还原到未修改前的状态 git checkout -- [file] #如果多次修改文件,并提交到本地版本库中,如果想回退到上一个版本,则 git reset --hard HEAD^ #表示回到上个版本 git reset --hard # 上上一个版本就是HEAD^^
3 远程仓库基本操作
3.1 查看仓库
# 查看远程仓库的路径版本 git remote -v # 查看 远程 git remote # 查看远程仓库详细信息 查看哪个仓库,后面带哪个仓库的参数 git remote show <仓库简历>
3.2 添加/移除远程仓库
# 添加远程仓库 git remote add <shortname> <url> # 删除远程仓库,只删除本地仓库和远程仓库的关系,并不真正删除到远程仓库 git remote rm <shortname>
3.3 从远程仓库获取代码
# 从远程仓库克隆 git clone <url> # 从远程仓库抓取 .git目录,不会合并到工作区 git fetch <shortname> <分支名称> # 手动合并 把某个版本的某个分支合并到当前工作区 git merge <shortname> <分支名称> # 从远程仓库抓取抓取到.git,合并到工作区,工作区发生改变 git pull <shortname> <分支名称> git pull <shortname> --allow-unrelated-histories # 强制拉取合并
3.4 命令行-分支
# 默认,分支名称未master # 列出所有的本地分支 git branch # 列出所有的远程分支 git branch -r # 列出所有的本地分支和远程分支 git branch -a # 创建分支 git branch <分支名> # 切换分支 git checkout <分支名> # 删除分支(如果分支已经修改过,则允许删除) git branch -d <分支名> #强制删除分支 git branch -D <分支名> # 强制删除远程分支 git branch -d -r branchname 删除远程branchname分支 #名字分支已经存在,则需要使用-M强制重命名,否则,使用-m进行重命名。 git branch -m | -M oldbranch newbranch 重命名分支,如果newbranch
4 命令行tag
# 列出所有的tag git tag # 查看tag 的详细信息 git show [tagname] # 新建一个tag git tag [tagName] # 提交指定tag git push [仓库简称][tagName] # 新建一个分支,指向某个tag git checkout -b [branch] # 删除本地tag git tag -d [tag] # 删除远程tag git push origin :ref/tags/[tag]
5 示例
# 本地先创建文件 echo "# C-Projects" >> README.md # 本地先初始化一个仓库 git init # 增加文件到暂存区 git add README.md # 提交文件增加提交注释 git commit -m "first commit add README.md file" # 重命名分支main git branch -M main # -M 强制命名 # 用origin 代替远程仓库 git remote add origin https://github.com/wangdong1328/C-Projects.git # 提交本地仓库到远程仓库 git push -u origin main
6 公钥所在文件
# 生成密钥 ssh-keygen -t rsa -C "wangdong1328@163.com" # 密钥所在文件 ~/.ssh/id_rsa.pub