网站首页 > 基础教程 正文
理解GIT的内部原理,分清楚工作区、暂存区、版本库,还有就是理解GIT跟踪并管理的是修改,而非文件。
来到JD后由于写脚本需要上传代码库,所以就一直用Git上传,之前一直在Win用的TortoiseGit,现在命令行用的比较多,所以把一些指令总结一下,以便回顾和查询。
理解这些指令,觉得最重要的是理解Git的内部原理,比如Git的分布式版本控制,分清楚工作区、暂存区、版本库,还有就是理解Git跟踪并管理的是修改,而非文件。
设 置
$ git config --global user.name "Your Name" $ git config --global user.email "email@example.com"
提 交
git tracked的是修改,而不是文件
#将“当前修改”移动到暂存区(stage) $ git add somfile.txt #将暂存区修改提交 $ git commit -m "Add somfile.txt."
状 态
$ git status $ git diff
回 退
# 放弃工作区修改 $ git checkout -- file.name $ git checkout -- . # 取消commit(比如需要重写commit信息) $ git reset --soft HEAD # 取消commit、add(重新提交代码和commit) $ git reset HEAD $ git reset --mixed HEAD # 取消commit、add、工作区修改(需要完全重置) $ git reset --hard HEAD
记 录
$ git reflog $ git log
删 除
$ rm file.name $ git rm file.name $ git commit -m "Del"
远程操作
$ git remote add origin git@github.com:michaelliao/learngit.git # 第一次推送,-u(--set-upstream)指定默认上游 $ git push -u origin master $ git push origin master
克 隆
$ git clone https://github.com/Yikun/yikun.github.com.git path $ git clone git@github.com:Yikun/yikun.github.com.git path
分支操作
# 查看当前分支 $ git branch # 创建分支 $ git branch dev # 切换分支 $ git checkout dev # 创建并checkout分支 $ git checkout -b dev # 合并分支 $ git merge dev # 删除分支 $ git branch -d dev
标签
$ git tag 0.1.1 $ git push origin --tags
想详细了解Git的同学,我推荐一下这一本,JD有售
注意:后续还会做进一步完善。
猜你喜欢
- 2025-06-13 iOS项目的持续集成与管理(ios项目的持续集成与管理是什么)
- 2025-06-13 Git 从入门到放不下(git小白入门)
- 2025-06-13 Git 常用命令总结(git的常见命令)
- 2025-06-13 在游戏中学习git操作(二)(git 小游戏)
- 2025-06-13 Git Submodule子模块功能,你使用过吗?
- 2025-06-13 Git使用的奇技淫巧(git的使用超详细版教程)
- 2025-06-13 解决git中的detached问题(git checkout detach)
- 2025-06-13 新一代编程神器 Codex 登场,你的专属 AI 软件工程师来了!
- 2025-06-13 在游戏中学习git操作(六)(github游戏项目)
- 2025-06-13 小丁带你走进git的世界三-撤销修改
- 最近发表
- 标签列表
-
- jsp (69)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (86)
- location.href (69)
- dockerexec (65)
- tail-f (79)
- queryselectorall (63)
- location.search (79)
- bootstrap教程 (74)
- deletesql (62)
- linuxgzip (68)
- 字符串连接 (73)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)