1.新建代码库
- git init :在当前目录初始化一个新的Git代码库。
- git init (project-name) :新建一个目录并初始化为Git代码库。

- git clone (url) :从远程仓库克隆项目及其代码历史。
- 1.到仓库项目页
2.复制项目地址

3.克隆拉取代码
- git clone -b (branch-name) (url) :克隆指定分支的代码到本地。
2. 配置
- git config --list :显示当前的Git配置。

- git config -e (--global) :编辑Git配置文件(全局或项目配置)。
- 1.全局配置


- git config (--global) user.name "(name)" :设置提交代码时的用户名。

检查

- git config (--global) user.email "(email address)" :设置提交代码时的用户邮箱。
- SSH仓库配置
- 去到上面的文件路径 查看密钥
到仓库配置
3. 文件操作
- git add (file1) (file2) ... :将指定文件添加到暂存区。
- git add (dir) :将指定目录及其子目录添加到暂存区。

- git add . :将当前目录的所有文件添加到暂存区。
- git add -p :在添加每个变化前进行确认。


- git rm (file1) (file2) ... :删除工作区文件并将删除操作放入暂存区。 前提是已经提交到本地仓库的文件
- git rm --cached (file) :停止追踪指定文件,文件保留在工作区。

-
git mv (file-original) (file-renamed) :重命名文件并将操作放入暂存区。
4. 代码提交
-
git commit -m (message) :将暂存区的内容提交到仓库区。

- git commit (file1) (file2) ... -m (message) :提交指定文件到仓库区。

- git commit -a :提交工作区自上次commit之后的变化。
- git commit -v :提交时显示所有diff信息。

- git commit --amend -m (message) :用新的commit替代上一次提交。
- 将新的修改添加到暂存区。假设修改了
main.js
文件 - git commit --amend --no-edit,
--no-edit
参数表示不修改提交信息,直接将暂存区的内容合并到上一次提交中。

5. 分支管理
- git branch :列出所有本地分支。

- git branch -r :列出所有远程分支。
- git branch -a :列出所有本地和远程分支。

- git branch (branch-name) :新建一个分支但不切换。
- git checkout -b (branch) :新建一个分支并切换到该分支。

- git checkout (branch-name) :切换到指定分支。

- git checkout - :切换到上一个分支。
- git branch --set-upstream-to=origin/(remote-branch) (branch):建立追踪关系。
- 先拉一下远程分支 git fetch origin
- git merge (branch) :合并指定分支到当前分支。 先签出,在合并

- git cherry-pick (commit) :将某一次的提交合并到其他分支。可能会有合并冲突
- git branch -d (branch-name) :删除本地分支 D强制删除。
- git push origin --delete (branch-name) :删除远程分支。
6. 标签操作
- git tag :列出所有标签。

- git tag (tag) :在当前commit新建一个标签。

- git tag (tag) (commit) :在指定commit新建一个标签。

- git tag -d (tag) :删除本地标签。
- git push origin :refs/tags/(tagName) :删除远程标签。

- git show (tag) :查看标签信息。

- git push (remote) (tag) :提交指定标签。
- 提交代码,生成标签 在提交指定标签

-
git push (remote) --tags :提交所有标签。
-
先查看,再推送 有覆盖风险
-
git checkout -b (branch) (tag) :新建一个分支指向某个标签。
-
从标签 v1.0.0 创建名为 zuofeng/v1.0.1 的分支
-
7. 查看信息
- git status :显示有变更的文件。

- git log :显示当前分支的版本历史。
- git log --stat :显示commit历史及每次commit变更的文件。
- git log -S (keyword) :根据关键词搜索代码中提交历史。

- git log (tag) HEAD --grep feature :显示符合搜索条件的提交。 v1.0.0 到现在版本提交的-m关键词中包含的 登录的 提交
-
git log --follow (file) :显示文件的版本历史。
-
-
git diff (file_name/所有文件) :查看工作区与暂存区的差异。

- git diff --cached :查看暂存区与提交版本的差异。

- git diff HEAD :查看工作区与仓库中最后一次提交版本的差别。
8. 远程仓库操作
- git remote -v :查看远程仓库信息。

- git remote add <remote_name> <repository_url> :添加远程仓库。
- git push <remote_name> <branch_name> :推送本地分支到远程仓库。

-
git pull <remote_name> <branch_name> :拉取远程仓库更新并合并到当前分支。
-
git push -u origin master :推送当前分支到远程仓库并设置上游分支。
9. 撤销操作
- git reset :撤销所有暂存的文件。
- git reset :撤销所有暂存的文件。
-
git reset <file_name> :撤销暂存的文件。

- git reset --soft HEAD~1 :撤销最近一次提交,保留代码修改。
- git reset --hard HEAD~1 :撤销最近一次提交,删除代码修改。

- git checkout -- :撤销工作区的修改。暂存区不动,工作区撤销

-
git reflog :查看操作记录。
10. 其他实用命令
-
git blame <file_name> :查看文件的修改历史。

- git clean -n :列出未被追踪的文件

-
git clean -f :强制删除未被追踪的文件。
-
git clean -x -f :删除未被追踪的文件,包括.gitignore中忽略的文件。 .gitignore文件
*.log # 忽略所有 .log 结尾的文件

- git status -sb :简洁输出git status信息
