记录常用git命令

本文详细列举了Git的各种常用命令,包括初始化、配置、忽略文件、查看状态、添加、分支管理、标签、切换分支、克隆、提交、显示差异、查找、日志、合并、改名、拉取、推送、暂存、重整、复位、参考日志、回退、删除等,涵盖了Git的基本操作和高级技巧,帮助开发者全面掌握Git版本控制系统。
摘要由CSDN通过智能技术生成

1.初始化 (init)

  • git init 初始化工作目录,将文件可以被git管理

2. 配置 (config)

git config --global user.email 邮箱
git config --global user.name 用户名

3.忽略文件ignore files

明确令git不管理某些文件或者目录。通常这是开发者私有文件,或者临时生成的文件。把这些文件或目录名添加到.gitignore文件中。

$ echo"temp/" >> .gitignore
$ echo"private_key" >> .gitignore

4.状态 (status)

git status 查看某些文件已修改,哪些文件已准备提交等信息
了解status的更多用法
git help status

5.添加 (add)

git add helloWord.js 添加文件
git add ./path/to/file/HelloWorld.js 添加子目录文件
git add ./*.js 通配符方式添加多个文件
git add -A 添加工作目录下所有文件

6.分支(branch)

该命令用于管理分支。可以查看,修改,创建,删除分支
git branch -a 列出所有分支
git branch newBranch 创建分支
git branch -d newBranch 删除分支
git branch -m oldBranch newBranch 重命名分支
git branch branchName --edit-description 修改分支描述

7.标签(tag)

管理标签,标签一般是对当前git仓库的快照设置一个标志。标签包括轻量(lightweight)与可标注(annotated),后者允许记录更多信息
git tag 列出标签
git tag -a v2.0 -m ‘my version 2.0’ 创建可标注的标签: -a 表示可标注类型, -m选项加一个说明
git show v2.0 显示某个标签相关信息
git push origin v2.0 把本端的标签v2.0推送到远端
git push origin --tags 把本端的所有标签推送到远端

8.切换(checkout)

工作区的文件更换为某个分支或提交的版本
git checkout 切换到主分支,一般是master
git checkout branchName 切换到某分支
git checkout -b branchName 创建并切换到该分支(等价于git branch name; git checkout name)

9.克隆(clone)

克隆远端的git仓库至本地。并且为新创建仓库中的所有分支绑定对应的远端分支
git clone URL 克隆仓库文件
git clone --depth 1 URL 浅克隆-快速克隆。注意如果不设置–no–single-branch,只会克隆HEAD所在的分支。--depth表示克隆的最近版本数

10. 提交(commit)

将缓存区(Index)中的内容提交到git仓库中
git commit -m “描述” 提交代码,并添加描述
git commit -S -m “描述” 提交时带数字签名(由提交者的GPG秘钥生成)
git commit -a -m “描述” 自动将修改的文件加入缓存区,在进行提交
git commit -amend -m “描述” 把本次提交与最后一次提交合并(删除最后一次提交,加入合并后的提交, 我一般用在修改提交记录)

11. 显示差异(diff)

显示工作目录、缓存区(Index)、当前git库版本之间的差异
git diff 显示工作目录和缓存区的差异
git diff --cached 显示缓存区与当前git库版本的差异
git diff HEAD 显示工作目录与当前git库的差异

12.查找grep

快速查找git库的内容
git config --global grep.lineNumber true grep结果显示行号
git config --global alias.g “grep --break --heading --line-number” 定义快捷命令g对于grep美化输出结果
git grep ‘variableName’ – ‘*.js’ 在js文件中查找字符串’variableName’

13.日志(log)

显示提交到git仓库的记录信息
git log 显示所有提交记录
git log --oneline 以简化单行方式显示每个提交
git log --merges 只显示合并的提交
git log --graph 在提交行的左侧以字符串图像的方式表示版本变化情况

14.合并(merge)

把外部的分支的修改,合并入当前分支
git merge branchName 把其他的某个分支,合并入当前分支
git merge --no-ff branchName --no-ff标志标识, 对任何情况合并都生成新的版本

15.改名(mv)

改名或者移动文件
git mv oldName.js newName.js 修改文件名字
git mv ./old/name.js ./new/name.js 修改文件的路径
git mv -f oldfile newdile 强制改名或者移动文件

16.拉取(pull)

把某个版本从远端git仓库中拖出,并且合并到本端的某个分支
git pull origin master git pull <remote> <branch>:把远端origin的master分支拖动到本端git仓库, 过程是拖动到本端的“远端镜像”分支,再合并入其对应的本端分支
git pull 如果当前分支与某个’远端分支绑定, 则先把其远端分支拖动到本地,在合并到当前分支
git pull origin master --rebase 合并到本端分支的策略是采用rebase(即本端修改在远端最新版本之上的单线演进)
git pull origin <branch> --allow-unrelated-history 如果两个分支互不相关可使用该命令拉取 --allow-unrelated-history该选项可以合并两个独立启动的仓库历史

17.推送(push)

把本端分支与修改推送至远端的分支并合并
git push origin master 把本端口的branch分支推送到远端git仓库
git push 如果不设置远端名称 将会推送到所有与远端绑定的本端分支
git push -u origin master -u可以在推送之前立即设置本端分支的远端绑定(该含义是将本端的master分支与origin[远端名]上的master绑定)

18.暂存(stash)

保存当前暂存区(Index)与工作目录中的变更内容到git中的某个存储区域。在必要的时候,可以取出这些变更并合并到当前工作目录与暂存区(Index)
git stash list 列出所有存储的’修改’ , 最新的位于上部
git stash pop 弹出堆栈顶部的’修改’, 并实施于工作目录或者暂存区
git stash apply 实施堆栈顶部的’修改’ 但不弹出
git stash apply stash@{1} 实施堆栈顶部起第二个的’修改’(0序), 但不弹出
git stash drop 抛弃/删除堆栈顶部的’修改’

19.重整(rebase)

把一个分支上的提交转移到另外一个分支上。这样有可能把两个分支合并成一个。
一个重要准则:不要重整已经提交到公共仓库的版本。
git rebase master experimentBranch 把特性开发分支重整到主分支上

20. 复位(reset)

通常reset命令,变更当前的HEAD某个版本,也可以根据HEAD指向的内容,更新存储区(Index)或工作目录。
git reset 复位缓存区, 用HEAD指向的内容更新缓存
git reset --hard 复位缓存区, 用HEAD指向的内容更新缓存区与工作目录
git resert 31f2bb1 先移动HEAD指针,再用git reset操作
git reset --hard 31f2bb1 先移动指针, 再用git reset --hard操作
git reset --soft 31f2bb1 只移动HEAD指针

21.参考日志(reflog)

reflog以时间由近到远列出所有的git操作, 缺省时间长度是90天。因为有些操作的结果没有直接的版本或标签对应,比如历史版本经过rebase等原因在现有版本树中已经找不到了,这些历史版本都可以在reflog中找到。
git reflog 列出参考日志
git reset --hard 31f2bb1 如果上述日志中显示最后一次操作是在master分支的hard reset。要恢复到原来的master指针,并更新工作目录与缓存区(Index)的内容,找到master分支初始状态时对应的Ref值

22.回退(revert)

回退用于对某个提交的修改,做反操作的修改,在效果上实现回退。回退在git仓库中产生一个新的提交。回退针对的“提交”与该回退之间,可能存在若干其他的提交。但“回退”只回退对应提交的修改,而保留其他提交的修改。
git revert <commit> 回退特定提交

23.删除(rm)

删除文件的同时,也变更git工作目录与缓存区(Index)的状态
git rm ./path/helloWord.js 删除文件

24.删除用户信息

git config --system --unset credential.helper 删除用户信息

25.保存用户信息

git config --global credential.helper store 保存用户信息

26.git拉取某次commit到本地分支

git cherry-pick 132465 132465为commit的id

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

淡莣一苆~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值