导图社区 git常用命令总结
这是一篇关于git的思维导图,主要内容包括:远程仓库,分支管理,保存工作区,版本控制,基本命令,初始配置,linux下安装,基本概念。
编辑于2025-02-03 10:23:16git
git是一个开源的分布式版本控制系统,用于高效的管理各种大小项目和文件
基本概念
工作区:项目所在操作目录,实际操作项目的区域 暂存区: 用于记录工作区的工作(修改)内容 仓库区: 用于备份工作区的内容 远程仓库: 远程主机上的GIT仓库 注意: 在本地仓库中,git总是希望工作区的内容与仓库区保持一致,而且只有仓库区的内容才能 和其他远程仓库交互。
linux下安装
sudo apt-get install git
初始配置
配置命令: git config 配置所有用户: git config --system [选项] file:///C:/Users/lvze/Desktop/%E7%AC%AC%E4%BA%8C%E9%98%B6%E6%AE%B5%E8%AF%BE%E7%A8%8Bv4.0/7%E9%A1%B9%E7%9... 2/172019/4/27 project 配置文件位置: /etc/gitconfig 配置当前用户: git config --global [选项] 配置文件位置: ~/.gitconfig 配置当前项目: git config [选项] 配置文件位置: project/.git/config 1. 配置用户名 e.g. 将用户名设置为Tedu sudo git config --system user.name Tedu 2. 配置用户邮箱 e.g. 将邮箱设置为lvze@tedu.cn git config --global user.email lvze@tedu.cn 3. 配置编译器 e.g. 配置编译器为pycharm git config core.editor pycharm 4. 查看配置信息 git config --list
基本命令
1. 初始化仓库 git init 意义:将某个项目目录变为git操作目录,生成git本地仓库。即该项目目录可以使用git管理 2. 查看本地仓库状态 git status 说明: 初始化仓库后默认工作在master分支,当工作区与仓库区不一致时会有提示。 3. 将工作内容记录到暂存区 git add [files..] 4. 取消文件暂存记录 git rm --cached [file] 5. 将文件同步到本地仓库 git commit [file] -m [message] 说明: -m表示添加一些同步信息,表达同步内容 e.g. 将暂存区所有记录同步到仓库区 git commit -m 'add files' 6. 查看commit 日志记录 git log git log --pretty=oneline 7. 比较工作区文件和仓库文件差异 git diff [file] 8. 放弃工作区文件修改 git checkout -- [file] 9. 从仓库区恢复文件 git checkout [file] 10 移动或者删除文件 git mv [file] [path] git rm [files] 注意: 这两个操作会修改工作区内容,同时将操作记录提交到暂存区。
版本控制
1. 退回到上一个commit节点 git reset --hard HEAD^ 注意 : 一个^表示回退1个版本,依次类推。当版本回退之后工作区会自动和当前commit版本保 持一致 2. 退回到指定的commit_id节点 git reset --hard [commit_id] 3. 查看所有操作记录 git reflog 注意:最上面的为最新记录,可以利用commit_id去往任何操作位置 4. 创建标签 标签: 在项目的重要commit位置添加快照,保存当时的工作状态,一般用于版本的迭代。 5. 查看标签 git tag 查看标签列表 git show [tag_name] 查看标签详细信息 6. 去往某个标签节点 git reset --hard [tag] 7. 删除标签 git tag -d [tag]
保存工作区
1. 保存工作区内容 git stash save [message] 说明: 将工作区未提交的修改封存,让工作区回到修改前的状态 2. 查看工作区列表 git stash list 说明:最新保存的工作区在最上面 3. 应用某个工作区 git stash apply [stash@{n}] 4. 删除工作区 git stash drop [stash@{n}] 删除某一个工作区 git stash clear 删除所有保存的工作区
分支管理
定义: 分支即每个人在原有代码(分支)的基础上建立自己的工作环境,单独开发,互不干扰。完 成开发工作后再进行分支统一合并。 1. 查看分支情况 git branch 说明: 前面带 * 的分支表示当前工作分支 2. 创建分支 git branch [branch_name] 说明: 基于a分支创建b分支,此时b分支会拥有a分支全部内容。在创建b分支时最好保持a分支"干 净"状态。 3. 切换工作分支 git checkout [branch] 说明: 2,3可以同时操作,即创建并切换分支 git checkout -b [branch_name] 4. 合并分支 git merge [branch] 冲突问题是合并分支过程中最为棘手的问题 当分支合并时,原分支和以前发生了变化就会产生冲突 当合并分支时添加新的模块(文件),这种冲突可以自动解决,只需自己决定commit操作即 可。 当合并分支时两个分支修改了同一个文件,则需要手动解决冲突。 5. 删除分支 git branch -d [branch] 删除分支 git branch -D [branch] 删除没有被合并的分支
远程仓库
远程主机上的git仓库。实际上git是分布式结构,每台主机的git仓库结构类似,只是把别人主机上 的git仓库称为远程仓库。 所有操作在本地git仓库下进行 1. 添加远程仓库 git remote add origin tarena@127.0.0.1:/home/tarena/gitrepo/tedu.git 2. 删除远程主机 git remote rm [origin] 3. 查看连接的主机 git remote 注意: 一个git项目连接的远程主机名不会重复 4. 将本地分支推送给远程仓库 将master分支推送给origin主机远程仓库,第一次推送分支使用-u表示与远程对应分支建立自动关联 git push -u origin master 5. 删除远程分支 git branch -a 查看所有分支 git push origin [:branch] 删除远程分支 6. 其他推送方法 git push --force origin 用于本地版本比远程版本旧时强行推送本地版本 git push origin [tag] 推送本地标签到远程 git push origin --tags 推送本地所有标签到远程 git push origin --delete tag [tagname] 删除远程仓库标签 1. 从远程获取项目 git clone tarena@127.0.0.1:/home/tarena/gitrepo/tedu.git 注意: 获取到本地的项目会自动和远程仓库建立连接。且获取的项目本身也是个git项目。 8. 从远程获取代码 git pull 将远程分支master拉取到本地,作为tmp分支 git fetch origin master:tmp 区别 pull将远程内容直接拉取到本地,并和对应分支内容进行合并 fetch将远程分支内容拉取到本地,但是不会和本地对应分支合并,可以自己判断后再使用 merge合并。