git和GitHub-命令

1. 基本概念
1.1. 仓库(Repository)
- 定义:存储项目代码和历史记录的地方。每个仓库包含项目的所有文件和每个文件的修订历史。
- 命令:
git init # 初始化一个新的 Git 仓库 git clone https://github.com/user/repo.git # 克隆远程仓库到本地
1.2. 分支(Branch)
- 定义:代码库的平行版本,允许你在不影响主分支的情况下进行开发。常见的分支有
main(或master)、dev(开发分支)等。 - 命令:
git branch # 列出所有本地分支 git branch new-branch # 创建新分支 git checkout main # 切换到指定分支 git checkout -b new-branch # 创建并切换到新分支 git branch -d old-branch # 删除分支
1.3. 提交(Commit)
- 定义:对代码库的某次更改,包含更改的描述信息。每次提交都有一个唯一的 SHA-1 哈希值。
- 命令:
git add filename # 将文件添加到暂存区 git add . # 将当前目录的所有文件添加到暂存区 git commit -m "Initial commit" # 提交暂存区的更改,并附加提交信息
1.4. 克隆(Clone)
- 定义:从远程仓库复制代码到本地,创建一个完整的仓库副本。
- 命令:
git clone https://github.com/user/repo.git # 克隆远程仓库到本地
1.5. 派生(Fork)
- 定义:从他人的仓库创建一个副本到自己的账户,用于独立开发。Fork 后的仓库与原仓库相互独立。
- 操作:在 GitHub 网站上点击
Fork按钮。
1.6. 拉取请求(Pull Request)
- 定义:请求将你的更改合并到主分支或其他分支。通常用于代码审查和协作开发。
- 操作:在 GitHub 网站上创建 Pull Request。
1.7. 合并(Merge)
- 定义:将一个分支的更改合并到另一个分支。合并操作可能会引发冲突,需要手动解决。
- 命令:
git merge feature-branch # 合并指定分支到当前分支
1.8. 远程(Remote)
- 定义:指向远程仓库的链接。常见的远程名称是
origin。 - 命令:
git remote -v # 显示所有远程仓库 git remote add origin https://github.com/user/repo.git # 添加远程仓库 git remote remove origin # 删除远程仓库
1.9. HEAD
- 定义:当前所在的分支或提交的指针。HEAD 通常指向当前检出的分支。
2. 操作命令
2.1. 初始化和克隆
- git init:初始化一个新的 Git 仓库。
git init - git clone [url]:克隆远程仓库到本地。
git clone https://github.com/user/repo.git
2.2. 配置
- git config --global user.name “[name]”:设置全局用户名。
git config --global user.name "Your Name" - git config --global user.email “[email address]”:设置全局用户邮箱。
git config --global user.email "[email protected]"
2.3. 添加和提交
- git add [file]:将文件添加到暂存区。
git add filename - git add .:将当前目录的所有文件添加到暂存区。
git add . - git commit -m “message”:提交暂存区的更改,并附加提交信息。
git commit -m "Initial commit"
2.4. 推送和拉取
- git push [remote] [branch]:将本地提交推送到远程仓库。
git push origin main - git pull [remote] [branch]:从远程仓库拉取并合并更改到本地。
git pull origin main - git fetch [remote]:从远程仓库获取更新,但不合并。
git fetch origin
2.5. 分支操作
- git branch:列出所有本地分支。
git branch - git branch [branch-name]:创建新分支。
git branch new-branch - git checkout [branch-name]:切换到指定分支。
git checkout main - git checkout -b [branch-name]:创建并切换到新分支。
git checkout -b new-branch - git merge [branch]:合并指定分支到当前分支。
git merge feature-branch - git branch -d [branch-name]:删除分支。
git branch -d old-branch
2.6. 状态和日志
- git status:查看工作目录和暂存区的状态。
git status - git log:查看提交历史。
git log - git diff:显示两个提交之间的差异。
git diff
2.7. 标签
- git tag [tag-name]:创建标签。
git tag v1.0.0 - git push [remote] [tag-name]:推送标签到远程仓库。
git push origin v1.0.0
2.8. 储藏
- git stash:临时保存当前工作进度,以便切换到其他分支。
git stash - git stash pop:恢复储藏的更改。
git stash pop
2.9. 远程仓库
- git remote -v:显示所有远程仓库。
git remote -v - git remote add [name] [url]:添加远程仓库。
git remote add origin https://github.com/user/repo.git - git remote remove [name]:删除远程仓库。
git remote remove origin
2.10. 其他常用术语
- Issue(问题):用于跟踪任务、增强功能请求和报告错误。每个 Issue 都有唯一的编号。
- Rebase(变基):将一个分支的更改应用到另一个分支的基础上,重新排列提交历史。
git rebase main - Conflict(冲突):当两个分支的更改互相冲突时,需要手动解决。
这些术语和命令是使用 Git 和 GitHub 进行项目管理时最常用的。掌握这些基本概念和操作,可以帮助你更高效地进行版本控制和协作开发。