git常用命令
git add xxx 或 . --> 将工作区的文件添加到暂存区(暂时保存,即将交给git进行版本管理)
git commit -m '' / git commit -m [xxx] --> '提交信息' 将暂存区的文件添加到版本
git status 红色表示在工作区/绿色表示在暂存区
git reset --soft HEAD^ --> 撤回commit(保存修改)
git diff
git diff --> 比较暂存区与工作区
git diff --cached --> 比较版本区与暂存区
git diff master --> 比较版本区与工作区
git diff branch1 branch2 --> 显示出两个分支之间所有有差异的文件的详细差异
git diff branch1 branch2 --start --> 显示两个分支之间所有有差异的文件列表
git diff branch1 branch2 xxx --> 显示指定文件的详细差异
git reset
git log --> 显示从最近到最u按的所有提交日志,如果出现 ':' 表示为输出完成,出现end后最后完成
git reflog --> 显示每次提交(commit)的 commit id
git reset --hard HEAD^ --> 版本回退(回退一次提交),^^表示回退两次 - 最多回退两次
git reset --hard 版本号 --> 回退到指定版本号的commit id 版本
git reset --soft 版本号 --> 回退到指定版本号的commit id 并暂存修改后的文件
git reset HEAD --> 用版本库中的文件去替换暂存区的全部文件
git checkout --x.txt --> 用暂存区指定的文件去替换工作区的指定文件(危险操作)
git checkout HEAD x.txt --> 用版本库中的文件替换暂存区和工作区的文件(危险操作)
git rm
git rm x.txt --> 删除文件
git rm -r xxx --> 删除文件夹
git rm --cached x.txt -->从暂存区删除文件
分支相关指令
git fetch
git fetch origin xxx:xxx --拉取 '分支'(目标分支)并在本地创建 xxx 分支
git checkout xxx --> 切换xxx分支
git checkout -b dev --> 创建dev分支,并切换到dev分支
git checkout -b xxx origin/xxx -->拉取远程分支并在本地创建该分支
git branch --> 查看当前分支
git branch -r --> 查看远程所有分支
git branch xxx --> 创建xxx分支
git branch -D branchName --> 删除本地指定分支
git push origin -d branchName --> 删除远程指定分支
git merge xxx --> 合并xxx分支到当前分支
git commit --amend --> 修改最新的一次提交commit
i --> 进入修改模式
Esc --> 退出编辑模式
:wq --> 保存并退出
git rebase
git reflog --> 查看本地记录
git rebase -i xxx -->合并commit
i --> 插入
:wq --> 保存退出
gitk --all
- 查看 git 分支提交线
Git密码操作
记住密码
git config --global credential.helper wincred
清空本地密码
git credential-manager uninstall
保存新密码
控制面板 -> 用户账户 -> 凭据管理器 -> 普通凭据 -> git:https://github.com -> 编辑
Git 项目操作流程
远程有修改,拉取本地操作
git pull origin master --> 拉取到本地 -第1种
git fetch origin master:tmp --> 新建一个tmp分支,将远程仓库的master分支代码版本复制到tmp分支上,不会自动合并 -第2种
克隆到本地
git clone '仓库地址' -->目前只有一个分支
git checkout -b '本地分支' origin/'远程分支' -->根据远程分支来创建本地另一个分支
git pull -->拉取远程仓库的全部东西
Octotree -->GitHub管理器(chrome插件)
协作开发
- GitHub官网 --> New organization(创建团队/组织)
- 选择free 或者其他
- 输入组织名称/联系邮箱
- 进行权限配置
- 创建新的仓库 ->私有化
- 添加成员,添加成员的账户名或者邮箱
- 对成员进行权限的配置(读/写/管理员)
- 发送邀请,成员同意
合并分支(差异对比)
-
远程分支有更新
git fetch --> 将远程分支拉取到本地,并在本地新建一个与远程分支名字一样的本地分支 git fetch origin xxx远程分支名 -->拉取xxx远程分支变为本地分支 -
从远程分支拉取到本地分支
git branch 本地分支名 --> 新建本地分支 git pull origin xxx远程分支名 --> 拉取远程分支的代码到新建的本地分支 -
建立本地分支与远程分支的跟踪联系
1- git branch -vv --> 可以查看本地分支对应的远程分支 git checkout -b dev origin/dev --> 在远程分支的基础上建立dev分支,并且让dev分支追踪origin/branch-name 2- git分支追踪远程分支 git branch --set-upstream test origin/master -->建立本地仓test并建立追踪关系,如果建立了本地仓也建立了追踪会修改追踪关系(建议使用) git branck --track test origin/develop 3- 修改追踪关系,切换到test git checkout test git branch --sett-upstream-to origin/master -
git合并远程拉取的分支与本地修改的分支
1- 先使用 git stash 暂存本地修改的部分 2- 再使用 git pull 拉取到远程分支 3- 使用 git stash pop 弹出本地修改部分,此时git会自动合并
GitFork
-
git clone 地址 -
git remote add upstream 地址(将b项目作为最新代码的参考标准 -- upstream 是上有仓库的别名,别名可随意命名) -
在本地更改代码 -
git add . git stash 暂存本地代码 git commit -m [xxx] 提交修改日志 git push origin xxx 推送到 origin 仓库 xxx 分支 -
拉取远程代码 git pull / git fetch upstream