Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。当我们在 GitHub 上创建一个仓库时,同时生成了仓库的默认主机名 origin,并创建了默认分支 master。GitHub 可以看成是免费的 Git 服务器,在 GitHub 上创建仓库,会自动生成一个仓库地址,主机就是指代这个仓库,主机名就等于这个仓库地址。克隆一个 GitHub 仓库(也叫远程仓库)到本地,本地仓库则会自动关联到这个远程仓库,执行 git remote -v
命令可以查看本地仓库所关联的远程仓库信息:
使用命令 git clone https://github.com/xiaohao-creator/shiyanlou.git 即可克隆远程仓库到本地
Git 要求对本地仓库关联的每个远程主机都必须指定一个主机名(默认为 origin),用于本地仓库识别自己关联的主机,git remote
命令就用于管理本地仓库所关联的主机,一个本地仓库可以关联任意多个主机(即远程仓库)。
克隆远程仓库到本地时,还可以使用 -o
选项修改主机名,在地址后面加上一个字段作为本地仓库的主目录名,举例如下:
当我们修改了工作区,git add
命令是将这些修改添加到暂存区,暂存区记录的只是修改。如果要撤销暂存区的修改怎么办?根据上图的提示,执行 git reset -- [文件名]
或者 git rm --cached [文件名]
命令即可
git add . 添加所有文件到暂存区
git reset --
即可把暂存区的全部修改撤销
git diff,它可以用来查看工作区被跟踪的文件的修改详情
git diff --cached 查看暂存区的全部修改
git log [分支名] 查看某分支的提交历史,不写分支名查看当前所在分支
git log -n 其中n是数字,查看最近n个提交
git log --author [奉献者名字] 查看指定奉献者的提交历史
git log --graph 图示法显示提交历史
在提交版本库前,需要配置用户的邮箱和密码,除此之外,还可以使用SSH关联授权的方式,如下:
git config (--global) user.name xiaohao
git config (--global) user.email 3214212144@qq.com
git config -l 可以查看配置信息
添加SSH关联(使用ssh传输速度有明显的提高,更重要的是,不再需要重复输入用户名和密码了)
然后,登录github
添加成功,显示如下:
使用方式如下:
git commit命令生成一个新的提交,一个必须的选项 -m
用来提供该提交的备注。 提交后,暂存区的修改被清空,执行git log可查看提交记录。
将本地新增的提交推送到 GitHub 远程仓库中,命令是 git push,后面不需要任何选项和参数,此命令会把本地仓库 master 分支上的新增提交推送到远程仓库的同名分支上,因为当前所在的分支就是 master,而且上文提到,它已经跟踪了远程仓库的同名分支
推送成功后执行git branch -avv 查看分支情况
git checkout master 切换分支到master
git reset --soft HEAD^ 撤销最近的一次提交,将修改还原到暂存区。--soft 表示软退回,对应的还有 --hard硬退回,后面会讲到,HEAD^表示撤销一次提交,HEAD^^表示撤销两次提交,撤销 n 次可以简写为 HEAD^n
我们有 git reflog 命令,它会记录本地仓库所有分支的每一次版本变化。实际上只要本地仓库不被删除,随你怎么折腾,都能回退到任何地方。reflog 记录只存在于本地仓库中,本地仓库删除后,记录消失。
git reset --hard [版本号]可退回到指定版本,如 git reset --hard HEAD@{2}
在使用git时有些命令的重复度极高,比如 git status
和 git branch -avv
等,
Git 可以对这些命令设置别名,以便简化对它们的使用,设置别名的命令是 git config --global alias.[别名] [原命令]
,如果原命令中有选项,需要加引号。别名是自定义的,可以随意命名,设置后,原命令和别名具有同等作用。操作如下:
自己设置的别名要记住,也可以使用 git config -l
命令(或cat -n ~/.gitconfig)查看配置文件。
git fetch,它的作用是将远程仓库的分支信息拉取到本地仓库,注意,仅仅是更新了本地的远程分支信息。fetch
命令的作用是刷新保存在本地仓库的远程分支信息
git pull命令来拉取远程分支到本地,pull 是拉取远程仓库的数据到本地
执行这个命令 git branch -u [主机名/远程分支名] [本地分支名]
将本地分支与远程分支关联,或者说使本地分支跟踪远程分支
删除远程分支的命令: git push [主机名] :[远程分支名] 或
git push [主机名] --delete [远程分支名]
。删除远程分支的命令可以在任意本地分支中执行
git pull --rebase
https://blog.csdn.net/qican_7/article/details/98870789
git pull origin master --allow-unrelated-histories