git 常用的命令

 

git init 初始化当前目录为Git可以管理的仓库

 

git add .  #工作区文件add到暂存区

git commit -m      #暂存区文件提交到本地仓当前分支

 

git diff <file> #查看文件区别

 

git diff HEAD -- <file> #查看工作区和版本库最新版本的区别

 

git log  [--pretty=online] [--graph] #操作日志

 

git reset --hard HEAD^  #回退到上一个版本

 

git reset --hard <commit id> #commit id可以不写全

 

git reset HEAD <file> #把暂存区的修改撤销掉,重新放回工作区,用HEAD时,表示最新的版本

 

git reflog #显示操作记录

 

git checkout -- [file]  #丢弃工作区的修改

命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:

一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

总之,就是让这个文件回到最近一次git commitgit add时的状态。

 

git rm <file> #从版本库删除文件

git remote add origin git@server-name:path/repo-name.git #关联远程仓库

git push -u origin master #第一次推送master分支的所有内容

git push origin master #将本地master分支的提交推送到远程库

git push origin dev #将本地的dev分支的所有提交推送到远程库的dev分支

 

git push #推送本地仓到远程仓

 

git clone <url> #从远程仓克隆

 

git pull #从远程仓拉去更新到本地仓

 

git status #仓库当前状态

 branch 分支管理

git branch #查看分支

 

git branch <name> #创建分支

 

git checkout <name> #切换到<name>分支

 

git branch -d dev #删除dev分支

 

git branch -D <name> #强行删除分支

 

git branch --set-upstream dev origin/dev #指定本地dev分支与origin/dev分支的链接

 

git checkout -b dev #创建dev分支,然后切换到dev分支,git checkout命令加上-b参数表示创建并切换

 

git checkout -b dev origin/dev #在本地创建和远程分支对应的分支dev

 

git merge dev #合并分支dev到当前分支

 stash 存储工作现场

git stash #存储当前工作现场内容

 

git stash list #查看存储的工作现场

 

git stash apply stash@{0} #恢复存储的工作内容,不删stash

 

git stash drop stash@{0} #删除stash

 

git stash pop #恢复并删除stash

 

git remote #查看远程库信息

 

git remote -v #更详细的远程库信息

 tag标签

git tag <name> #打标签

 

git tag v1.0

 

git tag -a v0.1 -m “xxxx” <commit id> # -a 指定标签名,-m 注释

 

git tag -s v0.2 -m “xxxx” <commit id> #-s用私钥签名一个标签

 

git tag v0.9 6224937 #对应commit id打标签

 

git show <tagName> #查看标签信息

 

git tag #查看所有标签

 

git tag -d v0.1 #删除标签

 

git push origin v1.0 推送标签到远程库(在远程库会创建标签)

 

git push origin --tags #一次性推送全部尚未推送到远程的本地标签 

 

删除已经推送到远程的标签:

git tag -d v0.9 #先本地删除

git push origin :refs/tags/v0.9 #从远程删除 

 

忽略文件

在git工作目录的文件.gitignore,将忽略的文件名称加进去

 

配置别名

 

git config --global alias.st status #st表示status

 

git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit

git config --global alias.last 'log -1'

git config --global alias.unstage 'reset HEAD'

git config --global alias.co checkout

git config --global alias.ci commit

git config --global alias.br branch

 

问题

请问在本地clone GitHub上面的一个名称为gitskills的repository之后,本地用户主目录就有了一个名称为gitskills的版本库,那么像之前说的,我本地是只有master分支的,即使GitHub上的gitskills有master分支和dev分支,我也是只能在本地clone的版本库看到master分支。我的疑问是:

1.【推送分支,就是把该分支上的所有本地提交推送到远程库。推送时,要指定本地分支,这样,Git就会把“该分支”推送到远程库对应的远程分支上:$ git push origin master】这里的“该分支”指的是 输入pwd 显示的当前分支吗?

2。【$ git push origin master】这句话里面的origin是远程版本库的默认名称,那么它和GitHub上面被clone的gitskills有什区别?是gitskills的一个别名吗?还是所有的其他的被cloneGitHub上面的版本库也都有一个统一的别名:origin?

3。【$ git push origin master】这句话里面的master是本地master分支还是被clone的版本库的分支?

4.【如果要推送其他分支,比如dev,就改成:$ git push origin dev】这句话是将本地的dev分支推送到远程库的dev分支吗?要是远程库中没有dev分支怎么办?

 

1,该分支 指的是【$ git push origin 本地分支名】 这句话中的分支

2,origin只是被clone的Github上的版本库,相当于当前被clone的版本库gitskills的别名就是 origin

3,$ git push origin master 这句话中的master是指本地的master,并非是github中远程库的master。

4,要是在本地版本库中创建分支 ceshi 与github中远程库origin的 一个分支 ceshi_1相关联(假设远程库中已经有ceshi_1分支)【$ git checkout -b ceshi origin/ceshi_1】,那么要是在 本地执行

$ git push origin ceshi ——意思是在github上的远程库(origin)上创建分支 ceshi,并将本地ceshi分支的内容推送(push)到远程库(origin)上的新分支 ceshi上,而不是 推送到所谓与之关联的 ceshi_1上

因此要是想推送到相关联的ceshi_1上,就要这样写 $ git push remote ceshi:ceshi_1

所以在创建本地版本库的分支和远程分支相关联的时候,名称最好起的一样

转载于:https://www.cnblogs.com/gaopengname/p/4875487.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值