本文共 1651 字,大约阅读时间需要 5 分钟。
阅读目录
在git下载到本地的目录中修改.git/info/exclude文件
例如git status时忽略所有的.pyc文件
#忽略以.pyc结尾的文件 *.pyc#忽略dbg文件&目录dbg#只忽略dbg目录dbg/#只忽略dbg文件dbg!dbg/
场景:当文件修改了,但没有add,还原最后一次提交的内容
git checkout --filename
注:使用之前需要确认确实要放弃之前的修改,否则会使内容彻底丢失。
场景:文件add了,但是突然想取消add操作,此时可用reset命令
git reset HEAD filename
git add file :将文件添加缓存区 git add -u :将文件的修改、文件的删除,添加到暂存区。git add . :将文件的修改,文件的新建,添加到暂存区。git add -A :将文件的修改,文件的删除,文件的新建,添加到暂存区。
场景:当commit 完了以后突然意识到还有文件没有提交,这时不需要再add+commit,可以amend到上次commit中
git add filenamegit commit --amend
这样就把文件添加到上次commit了
先使用git log 查看 commit日志,找到需要回退的那次commit的 哈希值commit_id
git reset --hardgit push origin HEAD --force
以src/test.py为例
1. git log src/test/py 得到改文件的commit历史2. 得到要回退版本的hash,如d98a0f565804ba639ba46d6e4295d4f787ff29493. checkout对应的版本,git checkout d98a0f565804ba639ba46d6e4295d4f787ff2949 src/test.py4. commit checkout下来的版本,git commit -m 'revert to previous version'
1 2 3 4 5 6 | error: Your local changes to the following files would be overwritten by checkout: . . .省略中间部分 . Please move or remove them before you can switch branches. |
出现这个错误时:可以通过以下的命令处理:
git clean -d -fx ""
注:
1. x :表示删除忽略文件已经对来说不识别的文件 2. d: 删除未被添加到git的路径中的文件 3. f: 强制执行如果想拿远端Git服务器的最新版本(或指定版本)覆盖本地修改,可以用git pull,但这样会全面更新本地代码库
如果只想放弃本地工作所作修改(尚未add),可以用
1 | git checkout file/to/path |
如果想从远端库获取最新的更新,应先更新本地库,再跟新的本地
git fetchgit checkout origin/master file/to/path
本文转自jihite博客园博客,原文链接:http://www.cnblogs.com/kaituorensheng/p/5954187.html,如需转载请自行联系原作者