Git 是目前最流行的版本控制系统之一,被广泛用于软件开发和团队协作。无论您是初学者还是有经验的开发人员,熟悉Git的基本命令是必不可少的。在本文中,我们将分享50多个常用的Git命令,并为每个命令提供详细的示例,帮助您更好地理解和使用它们。
仓库创建与克隆
1. git init
初始化一个新的Git仓库。
示例:
git init
2. git clone
克隆一个远程Git仓库到本地。
示例:
git clone https://github.com/user/repo.git
提交与修改
3. git add
将文件或目录添加到暂存区。
示例:
git add file.txt
git add directory/
4. git commit
提交暂存区的文件到本地仓库。
示例:
git commit -m "Commit message"
5. git status
查看工作区、暂存区和本地仓库的状态。
示例:
git status
6. git diff
显示工作区与暂存区或本地仓库之间的差异。
示例:
git diff
7. git restore
撤销工作区的修改或恢复文件。
示例:
git restore file.txt
8. git reset
重置暂存区或本地仓库的状态。
示例:
git reset file.txt
分支管理
9. git branch
创建、列出或删除分支。
示例:
git branch new_branch
git branch -a
git branch -d branch_name
10. git checkout
切换到指定分支或恢复文件。
示例:
git checkout branch_name
git checkout -- file.txt
11. git merge
将指定分支的更改合并到当前分支。
示例:
git merge branch_name
12. git rebase
将当前分支的更改移动到另一个分支上。
示例:
git rebase branch_name
远程仓库
13. git remote
管理远程仓库。
示例:
git remote add origin https://github.com/user/repo.git
git remote -v
14. git push
将本地仓库的更改推送到远程仓库。
示例:
git push origin master
15. git pull
从远程仓库获取最新的更改。
示例:
git pull origin master
16. git fetch
从远程仓库获取最新的分支和标签,但不合并到当前分支。
示例:
```bash
git fetch origin
17. git clone
克隆一个远程Git仓库到本地。
示例:
git clone https://github.com/user/repo.git
18. git remote show
显示远程仓库的详细信息。
示例:
git remote show origin
日志和历史
19. git log
显示提交日志。
示例:
git log
20. git show
显示指定提交的详细信息。
示例:
git show commit_id
21. git blame
显示文件的每一行是由哪个提交引入的。
示例:
git blame file.txt
撤销与回退
22. git revert
撤销指定提交的更改。
示例:
git revert commit_id
23. git reset
回退到指定提交,并丢弃后续的提交。
示例:
git reset commit_id
24. git stash
保存当前工作目录的更改,并将其恢复到后续。
示例:
git stash
git stash pop
标签管理
25. git tag
列出、创建或删除标签。
示例:
git tag
git tag tag_name
git tag -d tag_name
26. git show-tag
显示标签的详细信息。
示例:
git show-tag tag_name
27. git push --tags
将本地的所有标签推送到远程仓库。
示例:
git push --tags
高级操作
28. git cherry-pick
选择指定的提交,并将其应用到当前分支。
示例:
git cherry-pick commit_id
29. git bisect
使用二分查找定位引入 bug 的提交。
示例:
git bisect start
git bisect good commit_id
git bisect bad commit_id
30. git rebase -i
交互式地修改提交历史。
示例:
git rebase -i commit_id
忽略与排除
31. .gitignore
配置文件,指定不需要版本控制的文件或目录。
示例:
# .gitignore 文件内容
file.txt
directory/
32. gitignore.io
根据语言、编辑器或操作系统生成.gitignore文件。
示例:
gitignore.io java eclipse macos
子模块
33. git submodule
管理子模块。
示例:
git submodule add https://github.com/user/repo.git
git submodule init
git submodule update
全局配置
34. git config
配置全局的Git设置。
示例:
git config --global user.name "Your Name"
git config --global user.email "your@email.com"
35. git config --list
列出当前的Git配置。
示例:
git config --list
标签与注释
36. git tag -a
创建一个带有注释的标签。
示例:
git tag -a tag_name -m "Tag message"
37. git tag -l
列出匹配指定模式的标签。
示例:
git tag -l "v1.*"
38. git show
显示标签的详细信息。
示例:
git show tag_name
39. git push origin --tags
将本地的所有标签推送到远程仓库。
示例:
git push origin --tags
40. git push origin :refs/tags/tag_name
删除远程仓库的指定标签。
示例:
git push origin :refs/tags/tag_name
忽略文件
41. .gitignore
创建一个用于忽略特定文件或目录的配置文件。
示例:
# .gitignore 文件内容
file.txt
directory/
42. git rm --cached
从版本控制中删除已经被添加的文件,但仍然保留在本地文件系统中。
示例:
git rm --cached file.txt
43. git check-ignore
检查文件是否被.gitignore忽略。
示例:
git check-ignore -v file.txt
子模块
44. git submodule add
添加子模块到当前仓库。
示例:
git submodule add https://github.com/user/repo.git
45. git submodule init
初始化已存在的子模块。
示例:
git submodule init
46. git submodule update
更新子模块到最新版本。
示例:
git submodule update
47. git submodule foreach
对每个子模块执行指定的命令。
示例:
git submodule foreach git pull origin master
全局配置
48. git config --global
设置全局的Git配置。
示例:
git config --global user.name "Your Name"
git config --global user.email "your@email.com"
49. git config --list
列出当前的Git配置。
示例:
git config --list
50. git config --global --edit
编辑全局的Git配置文件。
示例:
git config --global --edit
总结
这些是50多个对所有人有用的Git命令,每个命令都附带了详细的示例,希望能够帮助您更好地理解和使用Git。通过逐步熟悉和练习这些命令,您将能够更加熟练地进行版本控制、分支管理、远程仓库操作以及其他高级操作。