-
执行
git status
查看状态,再执行git add
命令选择要提交的文件,然后提交。 -
执行
git commit --allow-empty
,允许空提交。 -
执行
git commit -a
,提交所有改动。 -
执行
git commit --amend
进行修补提交。 -
如果把项目中文件
hello.c
的内容破坏了,如何使其还原至原始版本? _____-
git reset -- hello.c
-
git checkout HEAD -- hello.c
-
git revert hello.c
-
git update hello.c
-
修改的文档
meeting.doc
尚未提交,因为错误地执行了git reset --hard
导致数据丢失。丢失的数据能找回么? _____- 不能。执行硬重置使工作区文件被覆盖,导致数据丢失无法找回。
-
能。可以通过
git checkout HEAD@{1} -- meeting.doc
找回。 -
不确定。如果在重置前执行了
git add
命令将meeting.doc
加入了暂存区,则可以在对象库中处于悬空状态的文件中找到。 - 不能。因为未提交所以无法找回。
-
仅将工作区中修改的文件添加到暂存区(新增文件不添加),以备提交,用什么命令标记最快? _____
-
git add -A
-
git add -p
-
git add -i
-
git add -u
-
下面哪一个命令
不
会改变提交历史? _____
-
git reset --hard HEAD~1
-
git checkout HEAD^^ .
-
git rebase -i HEAD^^
-
git commit --amend
-
我使用和其他人不一样的IDE软件,总是在目录下生成以
.xx
为后缀的临时文件。如何避免由于自己的误操作导致此类文件被添加到版本库中呢? _____-
执行
git clean -f
删除临时性文件。 -
向版本库中添加一个
.gitignore
文件,其中包含一条内容为*.xx
的记录。 -
在文件
.git/info/exclude
中添加一条内容为*.xx
的记录。 - 更换另外一款IDE软件。
-
项目跨平台导致文件中的换行符不一致。其中有 Linux 格式换行符(0A),也有DOS格式换行符(0D 0A)。要如何避免此类情况呢? _____
-
修改
/etc/gitattributes
文件,在其中包含一条内容为* text=auto
的设置。 -
执行命令
git config --global core.autocrlf true
。 -
执行命令
git config --global core.autocrlf input
。 -
向版本库中添加一个
.gitattributes
文件,在其中包含一条内容为* text=auto
的设置。 -
下列对于版本库授权说法正确的是:_____
- 可以为分支或路径设置不同的写入权限,但不能设置不同的读取权限。
- 除管理员外,版本库的创建者都可以为自己创建的版本库授权。
- 只要通过授权后,便不能限制所推送的提交的署名作者,可以是任何人。
- 如果没有向版本库的写入权限,就一定没有读取权限。
-
取消服务器版本库中ID为
a2387
的提交,而且不能引起历史提交的变更,用什么操作? _____-
git rebase -i a2387^
-
git checkout a2387^ -- .
-
git revert a2387
-
git reset --hard a2387^
-
从版本库中的历史提交中彻底移除ID为
a2387
的提交,用什么操作? _____-
git reset --hard a2387^
-
git checkout a2387^ -- .
-
git revert a2387
-
git rebase --onto a2387^ a2387 HEAD
-
所有改动的文件都已加入暂存区,若希望将其中的
other.py
文件下次再提交,如何操作? _____-
git reset -- other.py
-
git checkout -- other.py
-
git checkout HEAD other.py
-
git reset --hard -- other.py
-
若产品的版本号显示为
1.7.10.rc0-33-g9678d-dirty
,可以判断出此版本号是如何生成的么? _____-
git tag
-
git describe --tags --always --dirty
-
git name-rev HEAD
-
git --version
-
关于
git clone
下面说法 错误 的是:_____- 克隆时所有分支均被克隆,但只有HEAD指向的分支被检出。
-
可以通过
git clone --single-branch
命令实现只克隆一个分支。 -
克隆出的工作区中执行
git log
、git status
、git checkout
、git commit
等操作不会去访问远程版本库。 - 克隆时只有远程版本库HEAD指向的分支被克隆。
-
关于删除分支
XX
,下列说法正确的是: _____-
执行
git push origin :XX
来删除远程版本库的XX
分支。 -
执行
git branch -D XX
删除分支,总是能成功。 -
远程版本库删除的分支,在执行
git fetch
时本地分支自动删除。 -
本地删除的分支,执行
git push
时,远程分支亦自动删除。 -
下面的操作中哪一个不能确认维护分支
maint
上所有的 bugfix 提交均已合并至当前分支master
中。 _____-
git rev-list ..maint
的输出为空。 -
在
maint
分支成功地执行git merge master
。 -
git log ..maint
的输出为空。 -
新版本发布,在
maint
分支执行git merge --ff-only master
成功。 -
一个图片文件
logo.png
冲突了,如何取出他人的版本。 _____-
git show :1:./logo.png > logo.png-theirs
-
git show :2:./logo.png > logo.png-theirs
-
git show :3:./logo.png > logo.png-theirs
-
git show :0:./logo.png > logo.png-theirs
-
工作在特性分支,常常因为执行
git push
默认推送所有本地和远程共有分支,导致非当前分支报告 non-fast-forward 错误。如果设置只推送当前分支可避免此类问题。下面操作正确的是:_____-
git config --global push.default upstream
-
git config --global pull.rebase true
-
git config --global receive.denyDeletes true
-
git config --global pager.status true
-
关于对象库(.git/objects)说法
错误
的是:_____
- 两个内容相同文件名不同的文件,在对象库中仅有一个拷贝。
-
对象库执行
git gc
操作后,reflog 会被清空导致其中记录的未跟踪提交及指向的文件被丢弃。 - 删除文件后,再通过添加相同文件找回,不会造成版本库的冗余。
-
对象库并非一直保持最优存储,而是通过周期性地执行
git gc
优化版本库。 -
关于子模组
错误
的说法是:_____
- 克隆父版本库,默认不会克隆子模组版本库。
-
子模组可以嵌套。执行
git submodule update --recursive
可对嵌套子模组进行更新。 - 子模组和父版本库的新提交,要先推送父版本库,后推送子模组。
- 子模组检出处于分离头指针状态(gitlink的指向),在子模组中工作需要手动切换分支。
-
当一个提交说明显示为
souce code refactor (fix #529)
,下面哪个说法是正确的? _____- 这个提交只是代码重构,并未修复任何东西,因此没有改变版本库的提交历史。
- 这个提交修正了第529号提交,没有改变版本库的提交历史。
- 这个提交撤销了第529号提交,改变了版本库的提交历史。
- 这个提交和项目的缺陷跟踪平台(如Redmine)关联,并会更新相关问题的状态。
-
-
-
-
执行
-
-
-
-
-
修改
-
执行
-
-
-