-
获取commit id
git log
-
查看commit内容
git show commit_id
查看修改了哪些内容
git show commit_id --stat
查看commit_id具体修改了哪些文件
git show commit_id:filepath
git 查看某个commit_id对应的具体文件信息
git fork的其他仓库(比如远程仓库A)的代码,fork到自己的仓库是远程仓库B, git clone下来是本地仓库C. 如果需要本地的拉去远程仓库A最新的代码,可以git remote add 远程仓名字(自己起一个) ssh://git***.git
3. git rebase 主仓 master 冲突的时候,需要手动解决冲突,修改完文件之后,git add 冲突的文件,然后git rebase --continue
即可,不要commit
4. git stash 导致的冲突,如果只回退文件,可以git checkout HEAD file/to/restore
5. git checkout -b mybranch origin/abranch 直接从origin/abranch 创建分支到mybranch
6. 利用git branch –delete dev
命令删除本地分支;
7. 利用git push origin –delete branch
命令删除远程分支;
8. 利用git branch –delete –remotes
命令删除追踪分支。
git add -u 直接add已经被git管理的文件
git mv 重命名文件
git log -n2 --oneline 查看最近两次的提交
git cat-file -t 文件名(SHA1算法生成的序列)查看类型
git cat-file -p文件名(SHA1算法生成的序列)查看内容
Git对象模型
对象(objects)
类型:4种数据对象:blob,tree,commit,tag
git diff 默认比较的是工作区和HEAD, git diff --cached 比较的是暂存区和HEAD
git branch -D 删除分支
暂存区恢复成head, git reset HEAD, 内容会自动到工作区。
git reset --hard commitid 会删除commit_id, 慎用
git diff temp master --file 比较两个分支文件的差异
git rm 删除暂存区文件
github/gitignore项目里面有很多gitignore可以参考
fast-forward是没有相同的祖先,可以git fetch --all, 然后git merge 查看报错,如果第一次创建仓库,线上有文件而线下没有,可以通过git merge --allow-unrelated-histories remote/branch进行merge.
git diff filename1 filename2 > modify.patch
git apply --stat patchfile
git apply --check patchfile
git apply patchfile
这三条命令分别是,检查patch文件格式,测试patch是否能应用到当前分支,应用此patch。
当无法apply的时候,可以参考如下命令进行apply
git apply --ignore-space-change --ignore-whitespace mychanges.patch
参考:
https://stackoverflow.com/questions/4770177/git-patch-does-not-apply