git相关操作
关于git的个人理解:https://www.cnblogs.com/qingshan-tang/p/12618556.html
文章导读
- git clone带用户名密码拉取
- idea配置及使用git
- mac查看git安装目录
- 分支相关
- git push推送
- 撤回操作
- .gitignore忽略
1.git clone带用户名密码拉取
git clone http://username:password@remote eg: username: abc@qq.com, pwd: test, git地址为git@xxx.com/test.git git clone http://abc%40qq.com:test@git@xxx.com/test.git 注意:用户名密码中一定要转义 @符号转码后变成了%40
2.idea 配置及使用git
参考:https://www.cnblogs.com/pejsidney/p/9199115.html
3.mac查看git安装目录
which git
4.分支
注意!!!以下所有的远程分支概念都不是真正的远程库,而是本地远程库副本。最好所有操作之前都git fetch一下 更新远程库副本。
4.1 查看本地分支
git branch -vv (-vv :显示分支指向hash和上游分支名)
4.2 查看远程分支
这个远程分支并不是真正的远程,而是本地远程库副本的分支。如果要查看真正的远程,要先git fetch
git branch -r -vv
4.3 查看所有分支
git branch -a -vv
4.4 从远程拉取某分支到本地远程库副本
这个其实就是对某个分支进行git fetch
git fetch origin <分支名>
4.5 将本地远程库副本的某分支检出到本地库某分支
git checkout -b <本地库分支名> <本地远程库副本分支名>
5.git push推送
分支状态:
下表得出结论:
- 本地分支名最好和远程分支名一致,这样可以直接使用git push,很方便。不然的话要把本地分支名和远程分支名都写上 --> git push origin <本地分支>:<同名远程分支>
- 不要向非关联的远程分支push,要不然会报错。最好使用merge合并两个分支。
git push | git push origin |
git push origin <本地分支>
|
git push origin <本地分支>:<远程分支>
|
git push origin <本地分支>:<非关联远程分支>
|
|
分支关联且名称相同
|
push成功—>prd3 | push成功—>prd3 | push成功—>prd3 | push成功—>prd3 | push失败—>
报错分支版本滞后
|
分支关联
|
push失败—>
提示:
|
push失败—>
提示:
|
push成功—>
但是在远程新创建了一个与本地同名的分支,然后push到这个分支中
|
push成功—>prd1 |
push失败—>报错分支版本滞后
|
6.撤回操作
6.1.撤回add操作
1.1 git reset HEAD 撤回所有文件
1.2 git reset <fileName> 撤回单个文件
1.3 git reset --hard HEAD 用本地库覆盖暂存区和工作区,慎用!!会导致本地所有更改被覆盖
这里最好深入理解git reset 的hard mixed soft三个级别,可参考 https://www.cnblogs.com/kidsitcn/p/4513297.html 的评论
但是git reset --mixed HEAD 暂存区并不会丢失,暂存区中的数据会回退到工作区。
https://www.cnblogs.com/zndxall/archive/2018/09/04/9586088.html
7..gitignore忽略
新建一个 .gitignore文件放在 .git文件夹同级别目录用来禁止git跟踪。
8.将本地新建分支推到远程
git push origin develop
相关命令
git checkout
作用一:放弃为add进暂存区文件的修改(不包含新增)
单个文件:git checkout ${fileName}
所有文件:git checkout .
作用二:切换分支
git checkout ${branchName}
git reset
作用一:撤销add操作,相当于回退到add之前的状态
撤销所有add文件:git reset HEAD .
撤销单个add文件:git reset HEAD ${fileName}
作用二:撤销所有add操作以及放弃所有变更修改
git reset --hard HEAD