实际开发中 Git 使用心得体会及常用命令总结

这篇博客写作的目的是为了记录一下自己学习及使用 Git 的一些心得体会,作为程序员必会的技能,希望能够和大家分享一下自己对于 Git 的操作与理解。


1. 查看 git 版本
git --version
2. 配置或清除用户信息
# local:区域为本仓库
# global: 当前用户的所有仓库
# system: 本系统的所有用户

# 配置
git config [--local | --global | --system] user.name 'Your name'
git config [--local | --global | --system] user.email 'Your email'

# 清除
git config --unset --local user.name
git config --unset --global user.name
git config --unset --system user.name
3. 查看配置
git config --list [--local | --global | --system]
4. 把已有项目的代码纳入 Git 管理
cd 项目代码所在的文件夹
git init
5. 新建项目直接用 Git 管理
cd 某个文件夹
git init 新建项目名称
cd 新建项目路径
6. 拷贝文件到 Git 管理的项目
cd git项目管理的路径
cp 要拷贝的文件路径 .
7. 提交文件
git add 要提交的文件名
git commit -m '文件名'
8. 为本次提交添加说明
git commit -m '提交说明'
9. 查看 git 状态
git status
10. 多个文件添加
# 将工作空间新增和被修改的文件添加的暂存区
git add .

# 将工作空间被修改和被删除的文件添加到暂存区(不包含没有纳入Git管理的新增文件)
git add -u
11. 清除暂存区所有操作
# 此操作会清除所有暂存区的工作目录的所有操作,慎用
git reset --hard
12. 变更文件名
git mv 原先文件名 新的文件名
13. 查看 git 版本提交记录
# 查看所有分支的历史
git log --all 

# 查看图形化的 log 地址
git log --all --graph 

# 查看单行的简洁历史。
git log --oneline 

# 查看最近的四条简洁历史。
git log --oneline -n4 

# 查看所有分支最近 4 条单行的图形化历史。
git log --oneline --all -n4 --graph 

# 跳转到git log 的帮助文档网页
git help --web log 
14. 创建新的分支
# temp:分支名
# f3a9bfafc38f27:通过 git log 命令查看的某一个分支的标识
git checkout -b temp f3a9bfafc38f27
15. 将修改的文件直接提交
# 此命令会将修改的文件直接提交,不需要先添加到暂存区,再提交到工作区
git commit -am '修改说明'
16. 图形化查看 git 提交记录
# 安装 gui
brew install git-gui

# 查看 git 提交记录
gitk
17. 查看分支
git branch -av
18. 切换分支
git checkout 想要切换到的分支名
19 .git目录文件解释
#cat命令主要用来查看文件内容,创建文件,文件合并,追加文件内容等功能。

# 查看HEAD文件的内容
cat HEAD 

# 显示版本库对象的内容、类型及大小信息。
git cat-file  

# 下面一串数字为commit的标识
# 显示版本库对象的类型
git cat-file -t b44dd71d62a5a8ed3 

# 显示版本库对象的大小
git cat-file -s b44dd71d62a5a8ed3 

# 显示版本库对象的内容
git cat-file -p b44dd71d62a5a8ed3 

# HEAD:指向当前的工作路径
# config:存放本地仓库(local)相关的配置信息。
# refs/heads:存放分支
# refs/tags:存放tag,又叫里程牌 (当这次commit是具有里程碑意义的 比如项目1.0的时候 就可以打tag)
# objects:存放对象 .git/objects/ 文件夹中的子文件夹都是以哈希值的前两位字符命名 每个object由40位字符组成,前两位字符用来当文件夹,后38位做文件。
20. git 底层运行原理

每一次 commit 都对应一个 tree,那这个 tree 是包裹在最外层的一个 tree,使用 git cat-file -p 命令的时候查看 tree 内部的内容,这里的每一个文件夹都可以看成一个 tree,而在这些文件夹中的具体文件内容两两不相等文件都是一个 blob,内容相同的文件统一为一个 blob。

21. 删除分支
git branch -d 分支名

# -D  强制删除
git branch -D 分支名
22. 修改最新 Commit 的 message
git commit --amend
23. 修改某一次 Commit 的 message
# 8202b5: 此次 Commit 的上一次 Commit 的标识
git rebase -i 8202b5

# 进入文件后,指令改为 r

# 自动进入修改文件,将 message 修改保存
24. 连续多个 Commit 整理成一个
# 8202b5: 比如第2次到第5次的 Commit,这个就是第一次Commit的标识
git rebase -i 8202b5

# 进入文件后,修改第2次到第5次的指令为 s

# 自动进入修改文件,填写此次合并的理由
25. 比较暂存区和HEAD文件的差异
 git diff —cached
26. 比较工作区和暂存区所含文件差异
# 比较所有差异
git diff

# 比较具体文件或者多个文件的差别
git diff 文件名 文件名 文件名 ...
27. 暂存区恢复成和工作区一样状态
git reset HEAD
28. 工作区文件恢复成和暂存区一样状态
 git checkout -- 文件名
29. 取消暂存区部分文件的更改
git reset HEAD -- 文件名 文件名 文件名...
30. 消除最近几次提交
# commit_id: 这个的含义是你想回复到那次提交的 commit 的id,id的获取可以通过 git log 去查看,此命令慎用
git reset  --hard commit_id
31. 不同提交的指定文件的差异
# 比较分支1和分支2所有文件不同
# 分支名也就是对应次分支最近一次commit的id
git diff 分支1名字 分支2名字

# 比较分支1和分支2中具体文件差别
git diff 分支1名字 分支2名字 -- 文件名


# 比较两次commit_id的文件的区别
git diff commit1_id commit2_id -- 文件名
32. 正确删除文件的方法
# 直接在工作区和暂存区中删除某个将来不需要提交到commit的文件时
git rm 文件名
33. 遇到修复bug如何处理
# 把当前工作区的内容放入暂存区
git stash 

# 把暂存区的内容恢复到工作区,且删除
git stash pop 

# 把暂存区的内容恢复到工作区,且保留
git stash apply
34. 指定不需要提交的文件
创建 .gitignore 文件,添加不需要文件配置
35. 克隆Git远端仓库到本地,修改并提交
# 查看远程版本库信息
git remote -v 

# 添加githup远程版本库
git remote add 仓库名 仓库地址

# 拉取远程版本库
git fetch githup 

# 查看合并帮助信息
git merge -h 

# 合并githup上的master分支(两分支不是父子关系,所以合并需要添加 --allow-unrelated-histories)
git merge --allow-unrelated-histories githup/master 

# 推送同步到githup仓库
git push githup 
36. Github 上如何搜索到感兴趣的项目

github 光标停留在搜索键,回车后进入的搜索界面中,点击 advanced search 即可进入高级搜索。

举例:

# 搜索内容 指定关键字出现在readme文件中 star数大于1000个
git 最好 学习 资料 in:readme star:>1000


最后

希望本篇文章中的常用 Git 命令能对你的工作有所帮助。 本人水平有限,如有错误,请在下方评论中指出。



请帮顶 / 评论点赞!因为你们的赞同/鼓励是我写作的最大动力!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值