面试官:说一说 git 与 svn 常用命令?
git
| 命令 | 释义 |
|---|---|
| git clone [url] | 已经有一个远程的Git版本库,只需要在本地克隆一份 |
| git init | 本地已经创建了一个工作目录,初始化 |
| git remote add [name] [url] | 与远程的仓库建立连接 |
| git remote set-url --push [name] [newUrl] | 修改远程的仓库 |
| git pull [remoteName] [localBranchName] | 拉代码 |
| git branch | 查看本地所有分支 -r // 查看远程所有分支 -m // 重命名本地分支 |
| git checkout [name] | 切换分支 |
| git add | . //将所有修改添加到暂存区 [file1] [file2] //添加一个或多个文件到暂存区 [dir] //加指定目录到暂存区,包括子目录 |
| git diff | 查看文件差异 |
| git rm | 将文件从缓存区中移除 |
| git commit -m xxxx | 将暂存区内容提交到版本库 |
| git push [remoteName] [localBranchName] | 推代码 |
| git log | 查看历史日志(看不到被删除的commitid) |
| git reflog | 可查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作) |
| git merge [branch] | 分支的代码合并到当前分支上 |
| git revert [commit id] | 还原一个版本的修改 重做某一个 commit 提交的内容(revert执行后会产生新的commit记录,是通过一次新的commit来恢复到之前旧的commit,但revert会保留恢复的该次提交后面的其它提交内容,假如后面的提交与要恢复的提交更改了同一地方,此时用revert就会产生冲突) |
| git reset --hard [commit-id] | 回滚到指定版本 (代码会完全回退到本次提交时的状态,工作暂存区以及本次提交后面的提交内容将会被完全清除,包括提交记录)再使用git push -f或--force强制推送。 |
问题:git 有a和b分支,你在a分支怎么使用b分 支代码,不使用合并。
git checkout 分支A
gi 1og 分支B (查找分支B上你需要的提交的 哈希值)
git cherry-pick 提交的哈希值(这将把特定提交的更改应用到分支A中。需要注意的是,如果这些更改与分支A上的其他更改产生冲突,你需要解決这些冲突。)
svn
| 命令 | 释义 |
|---|---|
| svn cleanup | svn |
| svn checkout PATH(PATH是服务器上的目录) | 将文件Checkout到本地目录 |
| svn add | *.java(添加当前目录下所有的java文件) test.java(添加test.java) |
| svn commit -m "add test file for my test" test.java | 将改动的文件提交到版本库 |
| svn update | 更新 |
| svn ls | 显示目录 |
| svn diff -r 274901:274903 | 274901 版本 和274903版本的差异 |
| svn merge | 合并 |