git init 初始化仓库
git clone 仓库地址 拷贝一份远程仓库
git status 查看仓库当前的状态,显示有变更的文件。
git add . 添加所有修改
git add 文件名称,不同文件名用空格分开
git commit -m ‘说明’ 提交到本地仓库
git reset 回退版本
git checkout 版本 。git checkout 分支版本无效时,是因为目录不对,用 cd 目录名 进入某个目录后再切换分支
git pull 命令用于从远程获取代码并合并本地的版本。git pull 其实就是 git fetch 和 git merge FETCH_HEAD 的简写。 命令格式如下:git pull origin dev
git push 提交代码。命令格式如下:git push origin dev
git config --list 查看配置信息
git config --global user.name “用户名”
git config --global user.email “邮箱”
git branch 列表分支,创建分支,删除分支
1、查看所有分支:git branch -a
2、创建分支:git branch 分支名
3、切换分支:git checkout 分支名
4、删除分支:git branch -D 分支名
1、git如何放弃所有本地修改
git checkout . #本地所有修改的。没有的提交的,都返回到原来的状态
git stash #把所有没有提交的修改暂存到stash里面。可用git stash pop回复。
git reset --hard HASH #返回到某个节点,不保留修改。
git reset --soft HASH #返回到某个节点。保留修改
2、git怎样删除未监视的文件untracked files
#删除 untracked files
git clean -f
#连 untracked 的目录也一起删掉
git clean -fd
# 连 gitignore 的untrack 文件/目录也一起删掉 (慎用,一般这个是用来删掉编译出来的 .o之类的文件用的)
git clean -xfd
# 在用上述 git clean 前,墙裂建议加上 -n 参数来先看看会删掉哪些文件,防止重要文件被误删
git clean -nxfd
git clean -nf
git clean -nfd
3、git push 提示 ! [rejected] dev -> dev (non-fast-forward)
git fetch origin dev //获取远程dev分支的修改
git merge origin dev // 合并远程dev分支
git pull origin dev // 更新本地的代码
如果此时本地代码冲突, 手动处理一下,重新提交就可以了。还有一个非常Low的方式,先把自己本地修改的代码备份打包一下,重新clone代码,然后ctrl+V,解决!
orphan分支是将N个完全不同的项目作为N个分支放在同一个仓库中, 并且分支之间互不影响。如果不在orphan分支里提交东西, 这个分支其实没有创建。
git checkout -b 分支是强制创建新一分支,如果创建的分支名本地已经有了,会强制覆盖为新建立的分支。而用checkout切换分支时, 本地文件系统会瞬间发生变化.
git checkout --orphan
从当前的分支上建立一个没有任何提交历史记录的分支。但是当前分支的内容一一俱全。简单的理解你的钱总数按现在的算,从开始到现在赚钱的记录都没有了。而git checkout -b
是你的钱总数按现在的算,之前的赚钱记录也记着。
在跟团队合作开发时,git管理人员在git服务器上新开了一个分支prod-2021.开发人员在本地当前开发的分支dev上,新建立一个分支prod-2021时,会把dev分支的所有log带过来,在pull origin prod-2021时会跟dev上的合并在一起从而导致问题。所以我们需要做一个新的空白分支然后去更新。
git创建一个新的空白分支branch
1、创建一个orphan分支。orphan是孤岛的意思。 git checkout --orphan prod-2021
2、删除prod-2021分支上的所有文件 git rm -rf 。
3、拉取远程上的分支 git pull origin prod-2021
拉取完成,可以在此进行开发。通过这种方式创建的分支是空的,没有任何父节点,第一次提交,是这个分支的跟节点。
git checkout -b branchname 这个命令会根据当前分支的当前状态新建一个分支,这个分支包含当前分支的所有log,用checkout切换分支时, 本地文件系统会瞬间发生变化。而orphan分支如果不在分支里提交东西, 这个分支其实没有创建。
我们先理解分支的概念,远程分支即服务器上面的分支,本地分支即同步服务器上面的分支,开发分支也可以是你本地的分支,也可以是新创建的分支。例如:远程分支是dev,本地分支是dev,开发分支是dev_local。这样的好处是本地分支负责拉取服务器上的分支,合并开发分支,上传更新分支。类似于本地的一个中转站。有冲突的在本地合并处理。
git开发分支本地分支合并远程分支
假设:dev是远程分支(开发分支);dev_local 是开发分支
1、在本地分支上拉取最新数据:git pull origin dev;
2、创建本地开发分支:git checkout -b dev_local,然后进入dev_local开发分支中开发;
3、开发分支开发完后,我们提交到本地仓库:
git add .
git commit -m "最新开发信息"
4、切换到本地分支:git checkout dev
5、合并开发分支到本地分支:git merge dev_local
6、更新推送到远程分支:git push origin dev
7、删除本地开发分支(看开发情况,需要就删,不需要就不删除):git branch -d dev_local
git remote prune origin 通过翻译的中文意思是 git远程修剪原点。
我们在处理git分支时,我们会删除某个时间点开发的分支,有时是删除了本地开发的分支,有时是管理人员删除了远程的分支。在我们使用 git branch -a 查看所有分支,包括本地和远程的,特别是我们删除了本地的分支,而远程分支被管理员删除后,在查询分支列表时发现本地依然可以看到已经删除的分支。
我们可以通过 git remote show origin 来查看有关于origin的一些信息,包括分支是否tracking。
查看时会发现一些列表显示 stale (use ‘git remote prune’ to remove) 。提示你可以通过git remote prune 移除这个分支。(也就是说你可以刷新本地仓库与远程仓库的保持这些改动的同步)
过时的就是和本地不同步的分支,本地已过时的表示你需要移除这个分支了。
这个时候你需要调用 git remote prune origin 或者 git fetch --prune
同步远程的分支到本地,这样远程已经被删除的分支,本地就不会再看见了。
在使用git开发中,之前是一直修改了就直接提交,至于以前提交了什么内容不太关注。最近需要查看git提交记录时,使用git log查看记录。然而却不知道如何退出git log模式了!毕竟这个命令手动输入指令基本上不用。所以就尴尬了。
退出git log模式很简单,只需要在git log模式下,按 q 键即可退出。如果不退出,在按完q键后回车即可。
在git log模式下查看日志时,如果提交的内容过多满屏看不下时,按回车(往下滚一行)、空格(往下滚一页)可以继续查看剩余内容。
当使用 git commit 而不使用 git commit -m 命令(没有带-m参数)时,会进入到vim编辑器中。vim编辑器有两种退出。
1 、保存并退出:
(1)按 Esc 键退出编辑模式,英文模式下输入 :wq ,然后回车(write and quit)。
(2)按 Esc 键退出编辑模式,大写英文模式下输入 ZZ ,然后回车。
2 、不保存退出:
按 Esc 键退出编辑模式,英文模式下输入 :q! ,然后回车。
按 Esc 键退出编辑模式,英文模式下输入 :qa! ,然后回车。
git fetch 命令用于从远程获取代码库,再通过git reset 命令来覆盖本地代码。
Git强制pull 线上代码合并到本地
git fetch --all
git reset --hard origin/master
注意本地修改的代码,合并会替换本地修改的。
还是一种方式是直接删除本地的代码,然后再通过 git clone 的方式拷贝一个 Git 仓库到本地。