git常见问题汇总

  1. 获取commit id
    git log

  2. 查看commit内容
    git show commit_id查看修改了哪些内容
    git show commit_id --stat查看commit_id具体修改了哪些文件
    git show commit_id:filepathgit 查看某个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

### Git 常见命令汇总 #### 推送代码至远程仓库 推送本地分支到指定的远程分支,通常用于多人协作项目中提交自己的工作成果。 ```bash git push [remote-name] [branch-name] ``` 例如推送到名为`origin`的远端服务器上的`master`分支: ```bash git push origin master ``` [^1] #### 添加文件到暂存区 当有新的或者已修改的文件需要被记录版本变更时,先要将这些改动添加进入索引(即暂存区域),之后才能通过commit保存历史快照。 ```bash git add . ``` 这会把当前目录下所有的新创建或更改过的文件都加入到待提交队列里去;也可以单独指明某个特定路径下的内容来精细化控制哪些部分应该被打包起来准备入库。 [^2] #### 忽略某些类型的文件不再追踪 有时候存在一些临时编译产物或是个人配置类的数据并不适合放在公共存储库里面共享给其他开发者查看。这时可以通过编辑`.gitignore`文档的方式告诉Git程序自动过滤掉那些不想要同步出去的东西。 停止跟踪已经存在的文件并让其后续变动不会触发任何版本控制系统的行为: ```bash git rm --cached file.txt ``` 接着向项目的根目录追加一行描述符声明该模式匹配项应当被排除在外: ```bash echo "file.txt" >> .gitignore ``` 最后记得再次执行add操作连同更新后的忽略清单一同纳入下次提交计划之中: ```bash git add .gitignore ``` 完成以上步骤后再做一次常规性的commit动作即可生效设定好的规则集。 [^3] #### 关联远程仓库 首次设置一个新的克隆副本链接回原始地址以便能够顺利地拉取/推送增量差异数据流。 ```bash $ git remote add origin git@github.com:pythonde/newRepository.git ``` 查询现有的关联关系概况一览表。 ```bash $ git remote -v ``` 初次上传资料的时候建议带上参数-u简化未来单纯调用push指令就能默认指向正确的方向而无需每次都重复输入完整的命名空间组合串。 ```bash $ git push -u origin dev ``` 从云端抓取最新的状态覆盖现有工作树使之保持一致。 ```bash $ git pull --rebase origin dev ``` 复制一份在线资源作为初始起点建立全新的本地实例化拷贝件。 ```bash $ git clone git@github.com:pythonde/newRepository.git ``` 解除之前定义好映射绑定关系断开联系。 ```bash $ git remote rm origin ``` [^4]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值