# git使用笔记 **Repository Path**: mike-solar/git-usage-notes ## Basic Information - **Project Name**: git使用笔记 - **Description**: 给同班同学写的 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-03-31 - **Last Updated**: 2025-04-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # git常用内容 ## 一些概念 1. **工作区**和**暂存区** **工作区**:当前文件夹里的东西 **暂存区**:已经被git跟踪但尚未提交的文件。`git add`命令将文件从工作区添加到暂存区。 2. **HEAD指针** HEAD指向最新的提交。 ## git常用命令 1. 克隆仓库: ```bash git clone 仓库URL ``` 2. 将文件夹初始化为仓库 ```bash git init ``` 3. 添加所有文件到暂存区 ```bash git add . ``` 添加个别文件 ```bash git add 文件名 ``` 4. 提交代码,“提交信息”里写此次变更的内容 ```bash git commit -m "提交信息" ``` 5. 远程仓库 ```bash git remote add 自定义的远程仓库名 远程url # 添加远程仓库 git remote set-url 自定义的远程仓库名 远程url # 修改远程仓库url git remote -v # 列出远程仓库。URL相同的fetch和push是同一个仓库。 git remote remove 自定义的远程仓库名 # 删除远程仓库 ``` 远程仓库名只在这个文件夹下有效。 6. 推送代码 ```bash git push 远程仓库名 分支名 ``` 克隆下来的仓库,远程仓库名默认origin,用`git remote -v`查看。 默认推送到同名分支,如需推送到不同名分支,用下面的命令: ```bash git push 远程仓库名 远程分支:本地分支 ``` 强制推送:(如`git reset --hard`后)(***慎用!!!***) ```bash git push -f 远程仓库名 分支名 ``` ```bash git push -f 远程仓库名 远程分支:本地分支 ``` 7. 拉取代码 ```bash git pull 远程仓库名 分支名 ``` 默认拉取到同名分支,如需推送到不同名分支,用下面的命令: ```bash git pull 远程仓库名 远程分支:本地分支 ``` 8. 分支操作 ```bash git branch 分支名 # 创建新分支 git checkout -b 分支名 # 创建新分支并切换到该分支 git checkout 分支名 # 切换分支 git branch --delete 分支名 # 删除分支 git merge xxx # 将xxx分支合并到当前分支 git rebase xxx # 将xxx分支变基到当前分支。和merge类似但提交树干净,有的人更喜欢它 git branch -m 旧名字 新名字 # 重命名没有推送过的本地分支。 # 重命名推送过的本地分支,重命名完用这个命令删除远程分支,然后重新推送 git push --delete 远程仓库名 旧名字 ``` 9. 查看当前分支的提交历史记录(提交树) ```bash git log ``` 10. 回滚 ```bash git revert commitID # 回滚到commitID,commitID在提交历史记录里看,可撤销的回退 git reset --soft commitID # 把commitID和当前工作区合并 git reset --hard commitID # 回滚到commitID并删除之后的提交。很难恢复。再推送需要强制 ``` 11. 回滚工作区文件,恢复到上次提交时 ```bash git restore 文件名 # 回滚个别文件 git restore . # 回滚所有文件 ```