远程仓库相关命令
检出仓库:$ 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 -- <file>可以恢复
[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
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。