一次git考试总结
首先把git常用命令总结一下
1、git init 初始化git仓库
2、git add xxx 将工作区xxx文件添加到暂存区
3、git commit 将暂存区文件提交到本地仓库
git commit --amend 把文件追加到最近一次提交中
4、git push 将本地文件推送到远程仓库
git push -u origin master -u参数是自动保存,下次不用写远程仓库和分支名,直接使用git push即可
5、git fetch 将远程仓库的最新内容拉到本地,可以检查了以后在决定是否合并
6、git merge 将本地与工作区的代码进行合并
6、git pull 将远程仓库的最新内容拉下来直接合并
git pull remote-name branch-name
git pull = git fetch + git merge
7、git config git配置
git config --get --global user.name 获取全局用户名
--get(获取)/–add(添加) --global(全局)/–local(本地) user.name(用户名)/user.email(邮箱)
8、git clone http://remote.repo.url 将远程仓库代码克隆到本地
git clone http://remote.repo.url your-folder 将远程代码克隆到本地指定文件夹下
9、git status 查询git文件状态
untracked:仓库里新建的文件,或者从别的地方复制到仓库里的文件,它们的状态都是 "untracked",它们被用红字显示在查询结果的 "Untrakced files" 段落中。
modified:被编辑过的文件的状态就变为 "modified",它们被用红字显示在查询结果的 "Changes not staged for commit" 段落中
staged:通过 git add
命令加入到暂存区的文件的状态就变为 "staged",它们被用绿字显示在查询结果的 "Changes to be committed" 段落中
10、git log 查看历史日志,每条日志包含一个40位的hash值、作者名字、电子邮件地址和提交日期及说明
git log --pretty=oneline 添加该参数表示把日志以紧凑形式展示,方便查看
11、git branch 列出所有分支
git branch xxx-name 创建分支
12、git checkout branch-name/file-name 切换到branch_name的分支/撤销对file_name文件的修改
git checkout -b branch-name 直接创建branch_name的分支并切换到这个分支上
git checkout - 切换到上次所在的分支,用于两个分支来回切换非常方便
13、git stash 将文件放到缓存区
git stash list 列出所有在缓存区中的文件
git stash pop 恢复之前放在缓存区中的文件
14、git rm 删除文件
git rm --cached 撤销添加到暂存区的文件(git add的逆向操作)
15、git mv 修改文件名称/移动文件
16、git tag 列出所有标签tag
git tag your-tag 对最近一次提交打tag
git tag your-tag a38799b90 对某次指定提交打tag
git tag -d your-tag 删除本地tag
17、git push --tag 将本地标签推送到远程服务器
18、git reset 把一个已修改的文件从暂存区中移出
git reset --sort HEAD^ 取消最后一次提交操作,并且暂存区和工作目录的文件均不受影响
其中上面的git commit --amend就相当于先git reset --sort再git commit
19、git remote 查看本地项目有几个远程仓库
git remote -v 查看每个远程仓库的fetch和push地址url
git remote add remote-name remote-url 手动添加远程仓库
20、git diff 查看被修改文件的细节内容
git diff branch-name/file-name
21、git blame file_name 查看文件中每一行的最后一次修改的人员时间信息
22、git merge 合并代码,将代码合并到主干分支
23、git rebase 功能同git merge
git rebase -i 修改历史日志提交说明/多次提交合并成一次(将被修改的提交pick改成s)
24、git repack 打包
25、git cherry-pick hash-code 当开发分支上有多次提交,但是只想把某一次提交合并到主线分支上的时候,使用该命令
26、git revert hash-code 取消某次已经提交到服务端的请求,相当于某次提交的逆向操作,添加一个新的版本
git revert hash-code --no–edit 添加–no–edit参数表示由系统自动生成一条提交说明
ps: reset是退回到目标版本,目标版本后面的版本就不见了
revert是对指向目标版本的一次逆向操作而生成一个新的版本,保留了之前的版本
下面分析考试试卷
1.创建分支 hcm-core, 把文件 hcm_file 添加到暂存区,并提交到远
这个问题的答案比较简单,用过git 的都能答出来送分题
git checkout -b hcm-core
git add hcm_file