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-常用操作汇总-创新互联
分享网址:http://pwwzsj.com/article/ddojoc.html