Git命令和配置技巧(2)

关于实际开发中,独立开发的话其实两个分支完全够用,一个主分支,一个开发分支。多人的话就按功能模块和人员来具体新建分支即可。由于这边由我一人负责整个项目,那么分支的话,我就建立了一个develop分支。发布版本时放到主分支处理即可。平时都在develop分支开发,如果此时发现线上版本有bug,那么只需要切换到master分支,修改bug,然后封版即可。处理好后继续回到开发分支开发就可以了。当然最好还是把刚才修改bug的代码merge到开发分支上。

还有一点使用技巧,也就是git stash的灵活使用。当我们正在当前分支编写代码,突然某人中断你的思路,提出某功能需修改且比较紧急,更烦人的是当前的代码已经开始编写,而且动用了好多文件,重要的是不想中途进行git commit提交。此时git stash就发挥作用了。

git stash // 暂时隐藏,之后就可以正常切换分支了,当前的修改内容只是保存并且隐藏起来 git stash pop // 回复到之前的工作状态,默认pop的是最近的一条,这样就可以愉快的继续编写当时被中断的代码了

git stash可以执行多次,我们可以使用git stash list命令来查看清单。当然还有好多命令,可以使用"git stash --help"来查看。

// git stash --help usage: git stash list [<options>] or: git stash show [<stash>] or: git stash drop [-q|--quiet] [<stash>] or: git stash ( pop | apply ) [--index] [-q|--quiet] [<stash>] or: git stash branch <branchname> [<stash>] or: git stash [save [--patch] [-k|--[no-]keep-index] [-q|--quiet] [-u|--include-untracked] [-a|--all] [<message>]] or: git stash clear

其实关于git stash还有一个使用技巧,那就是如果当前改了众多文件,突然又不想改了,想恢复到原来的样子。那么可能你会使用"git checkout ."命令来取消所有的更改,但是有种情况并不好使,那就是你除了修改文件,还添加了一些文件或则拖入了一些文件到工程目录下,此时使用"git checkout ."然后再使用"git status"查看的时候,会发现工作区多出了尚未识别的文件(处于等待add的状态)。在这个时候,使用git stash是再好不过了,因为这样将所有git控制下的文件,包括之前的目录,全部还原到之前的状态(也就是说git stash把新增的文件也暂时隐藏起来)。如果想彻底删掉,那就再把所有stash的列表清空吧,直接"git stash list"看下,然后"git stash clear"。

还有一点,关于在Git服务器上删除分支,本地使用"git branch -a"依旧可以看到被删除问题。好比你的代码托管到了开源中国(OSChina),你通过网站,在线删除分支,就会出现这种问题,稍微有点强迫症的自然受不了。此时可以使用 "git fetch -p"使fetch之后删除没有与远程分支对应的本地分支。 当然也可以通过查看远程分支。使用命令"git remote show origin"显示如下:

YJTSuper:yjtim super$ git remote show origin * remote origin Fetch URL: git@git.oschina.net:lingsui/yjtim.git Push URL: git@git.oschina.net:lingsui/yjtim.git HEAD branch: master Remote branches: dev tracked im tracked master tracked proV2.3.0 tracked refs/remotes/origin/test stale (use 'git remote prune' to remove) Local branches configured for 'git pull': master merges with remote master show merges with remote master Local refs configured for 'git push': dev pushes to dev (up to date) im pushes to im (fast-forwardable) master pushes to master (up to date) proV2.3.0 pushes to proV2.3.0 (up to date)

我们可以看到分支origin/test 已经过期(stale),可以使用命令"git remote prune origin"同样可以处理。

5.远程地址切换

如果想要切换远程地址,千万不要重新再初始化一个git代码仓库,使用git add重新添加。这样的好处只有一点,所有历史提交信息全部清空,不再保留,"git clone"时文件变小,理所当然,历史记录全部清空了麽。如果确定不保留,也建议这样做,关键时,谁写的代码更改了哪些东西很重要呀,还是选择保留吧。使用下面的方法,一行代码搞定,并且保留了所有的commit记录。

git remote -v // 查看远程地址 git remote set-url origin https://git.oschina.net/HaiShengHuo/xxx.git // 更换远程地址, 新建一个项目不添加任何文件 在本地直接push即可 6.查看某次提交修改的具体文件 方法一

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/13244.html