工作——git使用记录

Git命令大全:版本控制与仓库管理
git --version,查看git的版本
git config user.name "xxx",设置当前仓库的用户名
git config --global user.name "xxx",设置自己的用户名
git config --global user.email xxx@xxx.xxx,设置自己邮箱
git config --global color.ui  true,开启颜色显示
git config --system alias.ci commit,设置commit的别名为ci,其他类似,需要root权限,对所有用户都有效
git config --global alias.ci commit,设置commit的别名为ci,其他类似,只对自己有效
git config xxx,查看配置项xxx的值
git config --unset --global/--system xxx,删除git的配置项xxx
注:git config命令中--global参数修改的是当前用户家目录下的.gitconfig文件,修改只对当前用户有效,--system
修改的是/etc/gitconfig文件,修改对所有用户有效。不加--system、--global参数的时候只对当前仓库有效。直接修改
相关文件的命令:
git config -e
git config -e --global
git config -e --system


git init [xxx],初始化一个git仓库
git add xxx,跟踪xxx文件,并将xxx添加到暂存区
git add -A


git commit -m "xxx",提交暂存区的数据到仓库,xxx为提交说明
git commit --amend,对最新的提交进行修改
git commit --amend --all-empty --reset-author,重置上次提交的author信息
git commit -s,在提交说明中自动添加提交者的签名信息
git commit -a,对本地所有变更文件执行提交操作(不包括未被跟踪的文件)


git status,查看工作区文件状态
git status -s,以简洁的方式查看工作区文件状态
git status -s -b,查看工作区和暂存区中没有改动


git log,显示提交的日志
git log --stat,显示提交的日志,可以看到文件的变更统计
git log -3,显示3条最近的日志
git log --pretty=fuller/full/raw,这个有点说不清楚相比git log多(少)了些内容
git log --pretty=oneline,显示提交日志,每次提交独立占一行


git diff,比较工作区和暂存区的差异
git diff HEAD,比较工作区和当前工作分支(master)的差异
git diff --cached/--staged,暂存区与版本库中的差异


git reset HEAD,暂存区的目录会被重写,会被当前的工作分支(master)重写,工作区不受影响
git reset -- xxx,相当于git add的反向操作
git reset --soft HEAD^,回退一次提交引用
git reset --hard HEAD^/sha1-hash,重置到上一个提交/hash值对应的提交,暂存区和工作区会被重写
git reset --hard master@{x},重置之前x次的改变,多用于重置恢复
git reflog show master,master操作的历史记录,需要开启 core.logAllRefUpdates=true。


git rm --cached xxx,删除暂存区中的xxx文件,工作区不受影响
git checkout -- xxx,撤销工作区中xxx文件中未提交的修改
git checkout .,清除工作区中未添加到暂存区的所有改动,慎用!
git checkout HEAD xxx,使用HEAD指向的分支(master)中的xxx文件,撤销暂存区和工作区的修改
git checkout HEAD .,使用HEAD指向的分支(master),撤销暂存区和共工作的修改


git merge


git stash,保存当前工作进度
git stash pop,从最近保存的进度恢复
git branch,查看当前工作分支 


git grep "xxx",搜索仓库中文件内容与xxx匹配的部分


git rev-parse --show-toplevel,显示工作区目录


git tag -m "xxx" YYY,建立一个tag YYY,说明为xxx
git archive -o xxx.zip HEAD,基于最新的提交建立归档文件xxx.zip
git archive -o xxx.tar HEAD src doc,只将src doc归档到xxx.tar中
git archive --format=tar --prefix=1.0/ v1.0|gzip >foo-1.0.tar.gz,将tag v1.0建立归档,并且为归档前缀添加1.0


git cherry-pick,从众多的提交中挑选出一个提交应用在当前的工作分支
### GitHub 与 Git 的关系及区别 #### 关系 GitHub 是基于 Git 版本控制系统构建的一个在线服务平台。Git 是一种分布式版本控制工具,由 Linus Torvalds 创建,主要用于跟踪代码变更和协作开发[^1]。GitHub 则提供了一个云端存储库,使得开发者能够更方便地共享、管理和协作处理通过 Git 进行版本控制的代码[^3]。 换句话说,Git 提供了底层技术来管理源码的变化,而 GitHub 基于这些功能进一步扩展,增加了社交网络特性、项目管理工具以及其他辅助功能,使团队合作更加高效[^4]。 #### 区别 1. **性质不同** - Git 是一个命令行工具,属于客户端软件,安装后可以在本地计算机上运行,无需依赖任何外部服务即可完成大部分操作,比如提交更改、创建分支等[^5]。 - GitHub 是一项在线服务,它允许用户将他们的 Git 仓库推送到其服务器上并与他人分享。虽然也可以离线工作,但它的核心价值在于促进多人间的协同作业[^2]。 2. **使用场景差异** - 如果仅需在个人电脑上维护项目的不同历史状态或者尝试某些实验性的修改而不影响原始文件,则只需依靠 Git 即可满足需求。 - 当涉及到跨地域团队成员共同编辑同一个项目时,就需要借助像 GitHub这样的平台来进行集中式的协调沟通以及冲突解决等工作流程。 3. **联网需求对比** - 使用Git 功能完全不需要连接互联网;所有的操作都可以局限于单机环境之内完成,例如初始化一个新的 repository (repo),添加新文件至 staging area ,执行 commit 等动作都只需要访问本地磁盘资源就够了。 - 对应地,在享受到了来自 GitHub 所带来的额外便利的同时也要接受对其官方站点保持连通这一前提条件——因为很多高级别的交互行为(如 pull request, issue tracking etc.) 都必须经过 web interface 来发起并最终落实下来。 ```bash # 初始化 git 仓库(无需联网) git init # 添加文件到暂存区 git add . # 提交改动记录 git commit -m "Initial Commit" ``` 以上展示的是如何利用单纯的 Git 实现简单的版本管理工作流的例子,整个过程均未涉及任何形式上的网络请求活动。 综上所述,GitGitHub 各自扮演着不同的角色:前者专注于基础架构层面的技术支持;后者侧重于用户体验角度下的增值服务供应.
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值