git 冷知识

查看远程仓库地址 git remote -v
查看远程仓库信息git remote show 仓库名
查看远程仓库详细信息$git remote show 仓库名
添加远程仓库git remote add 名字 地址
重命名远程仓库git remote rename old new
删除远程仓库 git remote rm 仓库名

git checkout a 切换到a分支
git checkout -b new 切换到新建的new分支
git checkout - - test.txt 撤销工作区的修改

如何知道单个文件的提交记录,查看一段代码是什么时候修改的
git log –pretty = oneline 文件路径 获取某个文件的提交路径
git show 6b14b5883e5a03d5e2110eb78633f622e81a36ac 文件路径 查看某一次的修改

如何成功的添加忽略【情况两种,1是未添加未生成的文件。2是已经被索引跟踪的文件】。”
1创建.gitignore文件 在文件里写入要忽略的文件
2删除暂存, 重新添加 git rm -r –cached. &&git add .

当前任务中插入一个优先级高的任务需要提下手头工作去做,详述git操作流程
git stash 保存当前进度
然后切换到另一个分支去做
做完之后 git stash pop 恢复最新进度到工作区
(git stash list显示保存进度的列表。
git stash pop –index 恢复最新的进度到工作区和暂存区。(尝试将原来暂存区的改动还恢复到暂存区)
git stash pop stash@{1} 恢复指定的进度到工作区。stash_id是通过git stash list命令得到的
通过git stash pop命令恢复进度后,会删除当前进度。
git stash apply [–index] [stash_id] 除了不删除恢复的进度之外,其余和git stash pop 命令一样。
git stash drop [stash_id] 删除一个存储的进度。如果不指定stash_id,则默认删除最新的存储进度。
git stash clear 删除所有存储的进度。)

git库所在的文件夹中的文件大致有4种状态
Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged.
Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为Modified. 如果使用git rm移出版本库, 则成为Untracked文件
Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可进入暂存staged状态, 使用git checkout 则丢弃修改过, 返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改
Staged: 暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态. 执行git reset HEAD filename取消暂存, 文件状态为Modified

选择一个commit,合并进当前分支
$ git cherry-pick [commit]
支持一次性拿多个
git cherry-pick master4 master2
支持区间, 区间中间是 ..
git cherry-pick startGitSha1..endGitSha1

新修改的内容,添加到上次提交中,减少提交的日志
git commit –amend –no-edit

当本地分支存在,远程分支不存在的时侯,可以这样推送关联的远程分支
这样会直接新建一个同名的远程分支
git push origin localbranch

revert 可以平稳的回滚代码,但却保留提交记录,不会让协作的人各种冲突!
回滚到某个 commit
git revert commit-sha1