git-常用操作汇总-创新互联
远程仓库相关命令
目前成都创新互联已为千余家的企业提供了网站建设、域名、网络空间、网站托管运营、企业网站设计、永宁网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。检出仓库:$ git@192.168.1.102:yaoxiabing/saltstack.git 查看远程仓库:$ git remote -v 添加远程仓库:$ git remote add [name] [url] 删除远程仓库:$ git remote rm [name] 修改远程仓库:$ git remote set-url --push [name] [newUrl] 拉取远程仓库:$ git pull [remoteName] [localBranchName] 推送远程仓库:$ git push [remoteName] [localBranchName]
分支(branch)操作相关命令
查看本地分支:$ git branch 查看远程分支:$ git branch -r 创建本地分支:$ git branch [name] ----注意新分支创建后不会自动切换为当前分支 切换分支:$ git checkout [name] 创建新分支并立即切换到新分支:$ git checkout -b [name] 删除分支:$ git branch -d [name] ---- -d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项 合并分支:$ git merge [name] ----将名称为[name]的分支与当前分支合并 创建远程分支:$ git push origin [name] 删除远程分支:$ git push origin :heads/[name] 或 $ git push origin :[name] 如:[root@centos7 saltstack]# git push origin --delete 123 # 删除远程分支
发现有人总结得不错,就直接引用了。http://blog.chinaunix.net/uid-9398085-id-3164754.html
标签(tag)操作相关命令
创建远程标签:$ git push origin 标签名 删除远程标签:$ git push origin :refs/tags/标签名 列出标签:$ git tag -l 删除本地标签:$ git tag -d 标签名
example1 : 把本地的某个分支origin2提交到远程仓库,并作为远程仓库的master分支,或者作为名叫123的分支
[root@centos7 saltstack]# git branch origin2 # 创建一个本地分支origin2 [root@centos7 saltstack]# git push origin origin2:123 # 提交本地origin2分支作为远程的123分支 [root@centos7 saltstack]# git push origin origin2:master # 提交本地origin2分支作为远程的master分支
example2: 删除不对应远程分支的本地分支
[root@centos7 saltstack]# git fetch -p # 在fetch之后删除掉没有与远程分支对应的本地分支 -p:是prune 修剪的意思
example3: 手误rm删除本地仓库的某个文件,使用git checkout --
[root@centos7 saltstack]# ll total 24 drwxr-xr-x 4 root root 37 Oct 30 23:27 config -rw-r--r-- 1 root root 555 Oct 30 23:27 config.ini -rw-r--r-- 1 root root 13157 Oct 30 23:27 fabfile.py -rw-r--r-- 1 root root 38 Oct 30 23:31 README drwxr-xr-x 4 root root 37 Oct 30 23:27 template [root@centos7 saltstack]# rm README -f [root@centos7 saltstack]# ll total 20 drwxr-xr-x 4 root root 37 Oct 30 23:27 config -rw-r--r-- 1 root root 555 Oct 30 23:27 config.ini -rw-r--r-- 1 root root 13157 Oct 30 23:27 fabfile.py drwxr-xr-x 4 root root 37 Oct 30 23:27 template [root@centos7 saltstack]# git checkout -- README [root@centos7 saltstack]# ll total 24 drwxr-xr-x 4 root root 37 Oct 30 23:27 config -rw-r--r-- 1 root root 555 Oct 30 23:27 config.ini -rw-r--r-- 1 root root 13157 Oct 30 23:27 fabfile.py -rw-r--r-- 1 root root 38 Oct 30 23:35 README drwxr-xr-x 4 root root 37 Oct 30 23:27 template
example4: 使用rm(没使用git rm)删除某个文件,git commit -a强制提交
[root@centos7 saltstack]# ls config config.ini fabfile.py README template [root@centos7 saltstack]# [root@centos7 saltstack]# [root@centos7 saltstack]# rm README -f [root@centos7 saltstack]# git commit -a -m "for test" [root@centos7 saltstack]# git push [root@centos7 saltstack]# ll total 20 drwxr-xr-x 4 root root 37 Oct 30 23:27 config -rw-r--r-- 1 root root 555 Oct 30 23:27 config.ini -rw-r--r-- 1 root root 13157 Oct 30 23:27 fabfile.py drwxr-xr-x 4 root root 37 Oct 30 23:27 template
example5:使用git rm -rf强制删除某个目录后,使用git reset回退。
git reset [--hard|soft|mixed|merge|keep] [commit或HEAD],根据--soft --mixed --hard,会对working directory、index、HEAD进行重置。 A). --hard:除了“Untracked files”,其他变更都被重置。即:重设index和working directory,自从commit以来在working directory和index中的任何改变都被丢弃,并把HEAD指向commit。 B). --soft:这个模式的效果是,执行完毕后,自从commit以来的所有改变都会显示在git status的"Changes to be committed"中,当然,还有“Untracked files”。即:恢复commit以来的index和working directory内容。即:not commited C). --mixed:这个模式是默认模式。这个模式的效果是,自从commit以来的修改都会被保留,但会被标记成"Changes not staged for commit"。即:仅重置index,文件修改被转移到working directory中。即:not added (来自某大神的博客:http://lingxiankong.github.io/blog/2014/07/18/git-notes/)
example6: 如何判断分支tracking了没?
git的tracking就是把来源和目标绑定在一起,tracking只能一对一。 git push -u origin master 这时所在的分支就已经 tracking to origin/master 了,-u 就是这个用处。 查看.git/config配置文件也可以看出来 [branch "master"] remote = origin merge = refs/heads/master # 有这个表示是有tracking的,tracking实质其实就是pull 的 merge 动作来源
查看提交日志相关命令
[root@centos7 saltstack]# git blame test.txt # 查看test.txt这个文件中内容每一行提交的作者,最后的提交时间 [root@centos7 saltstack]# git log # 查看仓库提交记录,有几个常用选项 --oneline:一行显示每个commit的提交哈希值和提交信息 --graph:在显示内容左边绘制一张分支拓扑图 --all:显示所有分支 --name-status:简洁的日志信息,以及修改了哪些文件 -5:显示5个commit记录
git高级命令使用见:http://www.infoq.com/cn/news/2016/01/12-git-advanced-commands
参考链接:http://zengrong.net/post/1746.htm
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
本文名称:git-常用操作汇总-创新互联
网站URL:http://hbruida.cn/article/ddojoc.html