文章目录
- 初始化仓库
-
- 1.创建本地仓库:git init :
- 创建远程仓库:git clone repository-url [directory-name]
- 关联本地仓库和远程仓库 git remote add origin
- 分支操作
- 查看配置
- 设置用户信息
- 查看状态
- 查看提交历史
- 提交历史的回退
- 恢复工作目录中的文件更改
- 添加添加文件到暂存区
- 查看差异
- 恢复暂存区中的文件更改
- 提交更改
- 远程仓库操作
- git解决冲突
- 总结
初始化仓库
无论是远程仓库还是本地仓库最主要的是由工作区、暂存区构成、本地仓库、远程仓库、Git 目录、Git 配置文件和Git 钩子(Hooks)组成。
工作目录: 工作区是你在本地看到的项目目录,包含项目的所有文件和子目录。
暂存区: 暂存区是一个临时区域,用于保存你准备提交的修改。
本地仓库: 本地仓库是 Git 存储项目历史记录的地方,包含所有的提交、分支、标签等信息。
远程仓库: 远程仓库是托管在远程服务器上的 Git 仓库,用于团队协作和备份。
git 目录: .git 目录是 Git 仓库的核心,包含所有的元数据和对象数据库。
Git 配置文件: Git 配置文件用于存储 Git 的配置信息,包括用户信息、别名、远程仓库地址等。
Git 钩子(Hooks): Git 钩子是一些脚本,用于在特定的 Git 操作(例如提交、推送等)前后自动执行任务。
1.创建本地仓库:git init :
在指定目录初始化一个git仓库,若没有目录名则默认当前文件夹中创建。
可能会出现的问题是警告Git使用了master作为初始分支名,可以忽略。
git config –global init.defaultBranch [name] 命令来配置所有新仓库的默认分支名称,可以避免上述警告。
创建远程仓库:git clone repository-url [directory-name]
将远程仓库拉到本地,repository-url是远程仓库地址可以是 HTTPS、SSH 或 Git 协议,[directory-name](可选):指定克隆到本地的目录名称。如果不指定,Git 会默认使用远程仓库的名称作为目录名。
默认情况下,git clone 会克隆远程仓库的默认分支(通常是 main 或 master)。如果你想克隆特定分支,可以使用 -b 参数:git clone -b [指定分支] [远程仓库链接],这会指定仓库将 指定支克隆到本地,-b [指定分支]可以放在[远程仓库链接]之后,因为 Git 的命令行解析器能够正确识别 -b 选项。然而,推荐将 -b [指定分支]放在 URL 前面,以符合 Git 的官方用法和最佳实践。
关联本地仓库和远程仓库 git remote add origin
本地有仓库,此时并不是想创建一个单纯的远程仓库,而是希望将指定的远程仓库关联本地已有仓库。使用git remote -v检查。
分支操作
git branch: 列出所有本地分支。
git branch : 创建一个新分支。
git checkout : 切换到指定分支。
git checkout -b : 创建并切换到新分支。
git branch -d : 删除指定分支。
git branch -m : 修改当前分支名为branch_name。
git merge : 将指定分支合并到当前分支。
git push 【remote】 –delete 用于删除远程仓库remote中的指定分支。
查看配置
git config –list: 查看当前 Git 配置。
设置用户信息
git config –global user.name “Your Name”: 设置全局用户名。
git config –global user.email “your.email@example.com”: 设置全局用户邮箱。
查看状态
git status: 查看工作目录和暂存区的状态。
查看提交历史
git log: 查看提交历史。
git log –oneline: 以简洁的方式查看提交历史。
提交历史的回退
git reset –soft HEAD~n 将 HEAD 移动到指定的提交,但保留暂存区和工作区的修改。n希望回退多少次提交。
git reset –mixed HEAD~n 将 HEAD 移动到指定的提交,并重置暂存区,但保留工作区的修改。
git reset –hard HEAD~n 将 HEAD 移动到指定的提交,并重置暂存区和工作区,丢弃所有修改。
需注意冲突
恢复工作目录中的文件更改
git restore [file]: 将工作目录中的指定文件恢复到上一次提交的状态,丢弃未提交的更改。
git restore .: 将工作目录中的所有文件恢复到上一次提交的状态,丢弃未提交的更改。
git restore –worktree(默认):恢复工作区的文件,,丢弃未提交的更改。
添加添加文件到暂存区
git add [file]: 将指定文件添加到暂存区。
git add .: 将所有修改过的文件添加到暂存区。
查看差异
git diff: 查看工作目录和暂存区的差异。
git diff –cached: 查看暂存区和上一次提交的差异。
git diff 【commit1】 【commit2】: 查看两个提交之间的差异。
恢复暂存区中的文件更改
git restore —-staged:恢复暂存区的文件(将文件从暂存区移除,但保留工作区的修改)。
**git reset 【file】:**将指定文件从暂存区移回工作区,保留工作区的修改。
**git reset . :**将所有文件从暂存区移回工作区,保留工作区的修改。
提交更改
git commit 打开默认的文本编辑器,输入提交信息后提交暂存区的更改。
git commit -a “提交信息” 直接在命令行中指定提交信息,不打开编辑器。
git commit –amend 修改最近一次提交。可以更改提交信息或添加新的更改到上次提交中。
git commit –no-verify” 跳过 Git 钩子(如 pre-commit 钩子)直接提交。
git commit –allow-empty 允许创建空提交(即没有更改的提交)。
git commit –dry-run 模拟提交过程,显示将要提交的内容,但不会真正提交。
git commit –verbose 在编辑提交信息时,显示差异信息。
git commit –message=“提交信息” 等同于 -m,直接指定提交信息。
git commit –file= 从指定文件中读取提交信息。
git commit –template= 使用指定的模板文件作为提交信息的初始内容
git commit -S 使用 GPG 签名提交。
git commit –author=“作者信息” 指定提交的作者信息(格式:名字 )。
git commit –author=“作者信息”
git commit –date=“日期” 指定提交的日期(格式:YYYY-MM-DD HH:MM:SS)。
git commit –no-edit 使用上次的提交信息,不打开编辑器。
git commit –reset-author 重置提交的作者信息为当前配置的用户信息。
git commit -am “提交信息” 等同于 git add -a + git commit -m,自动暂存并提交所有已跟踪文件的更改。
根据具体情况可以组合使用
远程仓库操作
git remote –v 查看远程仓库信息。
git remote add [name] [url] 添加一个新的远程仓库。
git fetch [remote]: 从远程仓库获取更新。
git pull 【remote】 【branch】 从远程仓库拉取指定分支的更新并合并到当前分支。
git push 【remote】 【branch】 将本地分支的提交推送到远程仓库的指定分支。
git push -u 【remote】【branch】 将本地分支推送到远程仓库并同时设置上游分支,-u 是 –set-upstream 选项的简写。当你使用这个选项时,Git 会自动配置你的本地分支去跟踪远程仓库中的对应分支。这意味着在未来你只需要简单地运行 git push 或 git pull 而不需要额外指定远程和分支名。
git push –force 强制推送
git解决冲突
git pull 上游仓库 --rebase
# 修改代码
git add .
git rebase --continue
# 结束
总结
git是一个十分强大的版本管理器,灵活的使用上述命令的结合可以很方便且直观的管理代码。