Git 学习(2)
版本号
Git 中文件的版本号是 40 位十六进制的数字字符串,采用 SHA-1
加密算法计算获得
这样一方面可避免在合并时的冲突问题
另一方面可以用于文件定位,其中前两位表示文件夹,后 38 位表示文件
指令介绍
- 工作区
- 暂存区
- 存储区
- git add
- git commit
- git clone
- git publish
- git pull
- git push
常见操作指令
- 初始化仓库:
git init
: 在当前目录下初始化一个新的Git仓库
- 克隆仓库:
git clone <repository_url>
: 从远程仓库克隆一个本地副本
- 添加文件:
git add <file>
: 将文件添加到暂存区git add .
或git add --all
: 添加所有更改的文件到暂存区
- 提交更改:
git commit -m "Commit message"
: 提交已暂存的更改并添加提交消息
- 查看状态:
git status
: 查看工作区、暂存区和最新提交之间的状态
- 查看历史记录:
git log
: 查看提交历史记录git log --oneline
: 以单行方式查看提交历史git log --graph
: 以图形方式查看提交历史
- 分支操作:
git branch
: 列出所有本地分支git branch <branch_name>
: 创建新分支git checkout <branch_name>
: 切换到指定分支git merge <branch_name>
: 将指定分支的更改合并到当前分支
- 远程仓库:
git remote
: 列出远程仓库git remote add <name> <repository_url>
: 添加一个远程仓库git push <remote> <branch>
: 将本地分支推送到远程仓库git pull <remote> <branch>
: 从远程仓库拉取更改
- 撤销更改:
git reset <file>
: 将文件从暂存区撤销,但保留在工作区git reset --hard
: 撤销所有更改,包括工作区和暂存区
- 标签:
git tag <tag_name>
: 创建标签以标识特定的提交git push --tags
: 将标签推送到远程仓库
- 其他操作:
git diff
: 查看工作区和暂存区之间的差异git config
: 配置Gitgit stash
: 暂存当前的工作目录并切换到干净的状态
文件误删除
git restore
命令用于恢复工作树文件到指定提交的状态。它可以将指定文件恢复到最新的提交状态,丢弃所有未提交的更改,或者将文件恢复到暂存区的状态,但不影响工作目录中的文件
以下是一些常用的git restore指令:
- git restore :将指定的文件恢复到最新的提交状态,丢弃所有未提交的更改
- git restore --staged :将指定的文件恢复到暂存区的状态,但不影响工作目录中的文件
- git restore .:将工作树中所有未提交的更改恢复到最新提交状态
git reset
指令用于撤销之前的Git提交,并还原工作区和暂存区的状态。它有以下几种用法:
- git reset --hard HEAD^:将当前分支的HEAD指针移动到上一个commit,同时丢弃当前commit的所有修改和新增文件
- git reset --soft HEAD^:将当前分支的HEAD指针移动到上一个commit,但是保留修改和新增文件在工作区中,可以使用git checkout命令恢复
- git reset --mixed [commit]:将当前分支的HEAD指针移动到指定的commit,并且将该commit的修改和新增文件应用到当前分支的工作区中,但是保留其他分支的修改不受影响
- git reset [–hard | --soft | --mixed] []:与以上三种用法类似,不同之处在于可以使用参数指定要回滚到的特定commit
git revert
指令用于撤销之前的Git提交,并还原工作区和暂存区的状态。它与git reset指令不同,因为它不会删除任何数据,而是创建一个具有相反改动的新提交,从而撤销掉指定的提交
以下是一些常用的git revert指令:
- git revert :将指定的提交撤销,并创建一个新的提交来还原该提交之前的状态
- git revert --abort :中止正在进行的revert操作,并将工作区和暂存区恢复到指定的提交之前的状态
- git revert -n :尝试使用指定的提交来恢复工作区和暂存区的状态,但是只还原自该提交之后的变化
- git revert -m 1 :尝试使用指定的提交来恢复工作区和暂存区的状态,但是只还原自该提交之后的变化
远程仓库交互
以下是与远程仓库进行交互的一些常用Git命令:
- 克隆远程仓库:
git clone <repository_url>
: 从远程仓库克隆一个本地副本
- 添加远程仓库:
git remote add <name> <repository_url>
: 添加一个远程仓库,并为其指定一个别名(通常别名是 “origin”)
- 查看远程仓库:
git remote
: 列出所有已配置的远程仓库git remote -v
: 列出所有远程仓库的详细信息(URL)
- 拉取远程更改:
git pull <remote> <branch>
: 从远程仓库拉取指定分支的更改,并合并到当前分支git pull origin master
: 从名为 “origin” 的远程仓库的 “master” 分支拉取并合并更改
- 推送本地更改:
git push <remote> <branch>
: 将本地分支的更改推送到远程仓库git push origin feature-branch
: 推送本地的 “feature-branch” 分支到 “origin” 远程仓库
- 查看远程分支:
git branch -r
: 查看远程仓库的分支列表
- 删除远程分支:
git push <remote> --delete <branch>
: 删除远程仓库上的指定分支git push origin --delete feature-branch
: 删除名为 “feature-branch” 的远程分支
- 查看远程仓库信息:
git remote show <remote>
: 查看特定远程仓库的详细信息,包括远程分支和跟踪情况
- 获取远程更改信息:
git fetch <remote>
: 获取远程仓库的最新更改信息,但不合并到当前分支。这允许你查看远程分支的更新情况
- 查看远程分支的差异:
git diff <remote>/<branch>
: 查看本地分支与远程分支之间的差异
- 设置远程仓库URL:
git remote set-url <remote> <new_url>
: 更改远程仓库的URL
这些命令用于与远程Git仓库进行交互,帮助你同步和管理代码。根据你的需求,可能还会有其他高级命令和选项