Git 学习笔记
Git 是一种分布式版本控制系统。与集中式版本控制系统(如 Subversion)不同,每个开发者都拥有一份完整的代码库,可以在本地进行提交、分支和合并等操作,而不需要依赖于中央服务器。
Git 的分布式特性使得开发者可以更加灵活地进行协作开发,可以避免单点故障和网络延迟等问题。同时,Git 也提供了一些高级的功能,比如分支管理、版本回溯、合并冲突解决等。
配置 Git
安装完git后,需要进行一些基本的配置,比如用户名和邮箱地址。可以在命令行中输入以下命令进行配置:
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
创建仓库
可以使用 Git 创建新的仓库,也可以从已有的仓库克隆代码。以下是创建新仓库的命令:
mkdir myproject
cd myproject
git init
添加文件
在仓库中添加文件需要使用 git add 命令。例如,要将文件 index.html 添加到仓库中,可以使用以下命令:
git add index.html
提交更改
一旦添加了文件,就可以将更改提交到仓库中。使用 git commit 命令进行提交,并提供一条有意义的提交信息。
git commit -m "Add index.html file"
查看历史记录
使用 git log 命令可以查看仓库中的历史记录。该命令将显示每个提交的作者、日期、提交信息等信息。
git log
分支管理
使用 Git 可以方便地进行分支管理。使用 git branch 命令可以查看当前分支,并可以使用 git checkout 命令切换分支。
git branch
git checkout mybranch
同步远程仓库
在协作开发中,可能需要将代码推送到远程仓库或者从远程仓库拉取代码。可以使用 git push 命令将本地代码推送到远程仓库,并使用 git pull 命令从远程仓库拉取代码。
git push origin master
git pull origin master
解决冲突
在协作开发中,可能会出现多个人同时修改同一文件的情况,导致冲突。可以使用 git diff 命令查看冲突,并使用编辑器手动解决冲突。然后使用 git add 和 git commit 命令提交解决后的代码。
git diff
git add filename
git commit -m "Resolve conflict"
撤销更改
如果不小心修改了文件,或者想要撤销之前的提交,可以使用 git reset 命令。该命令可以将文件回溯到之前的状态。
git reset --hard HEAD
Git 标签管理
Git 标签管理是指给代码库中的某个版本打上标签,以便于在以后快速定位该版本。以下是一些常用的 Git 标签管理命令:
git tag:列出当前所有标签。git tag <tagname>:新建一个标签,但不将其推送到远程仓库。git tag <tagname> <commit>:新建一个标签,并将其指向指定的提交。git tag -a <tagname> -m "tag message" <commit>:新建一个带注释的标签,并将其指向指定的提交。git tag -d <tagname>:删除指定的标签。git push <remote> <tagname>:将指定的标签推送到远程仓库。git push <remote> --tags:将所有标签推送到远程仓库。
Git 分支管理
Git 分支管理是 Git 最重要的功能之一,以下是一些常用的 Git 分支管理命令:
git branch:列出当前所有分支。git branch <branchname>:创建新分支。git checkout <branchname>:切换到指定分支。git merge <branchname>:将指定分支合并到当前分支。git branch -d <branchname>:删除指定分支。git branch -r:列出远程分支。git pull <remote> <branchname>:从远程仓库拉取指定分支的代码并合并到当前分支。git push <remote> <branchname>:将当前分支推送到远程仓库。
Git 远程仓库
Git 远程仓库是指托管在云端或其他服务器上的 Git 仓库。以下是一些常用的 Git 远程仓库命令:
git clone <repository>:将远程仓库克隆到本地。git remote:列出当前所有远程仓库。git remote add <name> <url>:添加一个新的远程仓库。git fetch <remote>:从远程仓库拉取最新的代码。git pull <remote> <branchname>:从远程仓库拉取指定分支的代码并合并到当前分支。git push <remote> <branchname>:将当前分支推送到远程仓库。git remote -v:查看当前所有远程仓库的详细信息。