git命令

git常用 命令的使用

Git简介

Git是一个分布式的版本控制系统,与集中式的版本控制系统不同的是,每个人都工作在通过克隆建立的本地版本控制库中。也就是说每个人都拥有一个完整的版本库,查看提交日志、提交、创建里程碑和分支、合并分支、回退等所有操作都直接在本地完成而不需要网络连接。

Git三大区

git常用命令

  1. git init —– 初始化本地仓库
  2. git status —– 查看当前仓库状态
  3. git add —– 将工作区的修改提交到当前分支

    提交指定文件:git add *.文件后缀 提交全部文件:git add .

  4. git commit —– 将暂存区的修改提交到当前分支

    git commit –m “本次提交描述”

  5. git push origin master —– 把代码推送到仓库
  6. 忽略不想上传的文件

    在项目上新建一个 .gitignore文件,然后把不想上传的文件名写入 .gitignore文件中。

1、git pull 拉取分支
  • 将远程指定分支 拉取到 本地指定分支上:git pull origin <远程分支名>:<本地分支名>
  • 将远程指定分支 拉取到 本地当前分支上:git pull origin <远程分支名>
  • 将与本地当前分支同名的远程分支 拉取到 本地当前分支上(需先关联远程分支): git pull

2、git push 推送分支(注意:pull是远程在前本地在后,push相反)
  • 将本地当前分支 推送到 远程指定分支上:git push origin <本地分支名>:<远程分支名>
  • 将本地当前分支 推送到 与本地当前分支同名的远程分支上:git push origin <本地分支名>
  • 将本地当前分支 推送到 与本地当前分支同名的远程分支上(需先关联远程分支): git push

3、拉取远程仓库的分支到本地
  • 命令:git checkout -b 本地分支名 origin/远程分支名名

    若出现错误提示,需要先执行git fetch fatal: Cannot update paths and switch to branch ‘xxx’ at the same time.


4、撤销分支的合并Merge
  • git log找到需要回退的分支版本,执行git reset --hard <commit-id>回退

5、版本回退
  • git log找到需要回退的分支版本,执行git reset --hard <commit-id>回退,执行git push -f推到远程同步

6、取消版本回退
  • git reflog查看命令历史,以便确定要回到未来的哪个版本,执行git reset --hard <commit-id>回退

7、基于某个分支开一个新分支,并推送到远程仓库
  • 基于远程分支代码代码开一个本地分支:git checkout -b <新分支名> <远程主机名>/<远程分支名>
  • 把新分支推送到远程仓库:git push -u <远程主机名> <新分支名>(或git push <远程主机名> <远程分支名>+git branch --set-upstream-to=<远程主机名>/<远程分支名> <本地分支名>

8、将本地分支推送到远程,并且相关联
  • git push --set-upstream origin <本地分支名>git push -u origin <本地分支名>

9、修改本地分支名称
  • 当前在该分支上:git branch -m <新分支名称>

  • 当前不在该分支上:git branch -m <旧分支名称> <新分支名称>


10、git stash临时保存更改内容(无需提交),在后续可恢复
  • 保存到stash中,并添加标识:git stash save "stash的标识"

  • 显示所有已保存的stash列表:git stash list

    输出列表:(stash@{index}: on [分支名]: [标识信息]) stash@{0}: On BianZhi: Bianzhi stash@{1}: On BianZhi: ConsoleLog增强

  • 恢复某个stashgit stash apply stash@{index}

  • 恢复某个stash并将其从stash列表中删除:git stash pop stash@{index}

  • 删除某个stashgit stash drop stash@{index}

  • 清空所有已保存的stashgit stash clear

11、远程新建一个分支,但在编译工具搜索不出来时,可以通过以下命令更新远程分支的显示
  • 第一种: git fetch

    git fetch 拉取分支,远程被删除的分支不会同步删除本地origin的分支(origin/xxxx) EG:你有个本地分支feat,然后也有本地origin/feat,假设remote新增了test分支且其他人删除了remote的feat则git fetch可以在本地产生origin/test(但没有本地分支test,这个要你checkout到test的时候才会产生),但不会删除本地的origin/feat

  • 第二种: git update origin --prune

    必须带有–prune,否则跟git fetch等价。除了会拉取新分支,本地还会删除掉别人远程删除的分支 EG:按第一种的的例子,执行这个命令后可以拉取origin/test(但没有本地分支test),且删除本地的origin/feat(但不会删除你本地的分支feat)

git remote update origin --prune git fetchgit remote update origin --prune 的区别 git fetch 拉取分支,远程被删除的分支不会同步删除本地origin的分支(origin/xxxx)




-->