git的一些总结

1、从远程库中获取项目

  • ssh方式
git clone git@git.coding.net:xxx/test.git //例子,ssh方式获取项目不需要密码,只需要把本地生成的密钥填写在对应的远程仓库中。
  • https方式
git clone https://git.coding.net/xxx/test.git //https方式获取项目,需要用用户名和密码(远程仓库你的注册用户名和密码),使用该种方式,以后的push 和 pull操作都需要填写密码
  • 切换模式
git remote -v //这条命令可以查看自己是什么模式
git remote rm origin //删除本地与远程库的关联
git remote add origin + 模式的url(https url  、 ssh url)如当前是https模式,切换为ssh模式,则用如下命令
git remote add origin git@git.coding.net:xxx/test.git
  • 注意

git clone 命令,除了拉取新的项目之外,还有一个点,他会自动帮本地创建与远程分支名字一样的分支。而如果已经拉取了该新的项目,之后发现远程仓库中有新的分支,git pull 之后,只会拉取到远程分支信息到本地上,并不会自动创建与之对应的本地分支。

2、基本命令

git status //最常用的命令,查看当前仓库的状态
git add <file> //把修改的文件添加到暂存区
git add <通配符号> //该命令也可以采用一些通配的方式去添加
git commit -m "msg" //将暂存区的信息提交到本地仓库
git checkout -- <file> // 注意,-- 后面是有个空格的 ,该命令将工作区的文件(修改后)还原,并不包括在暂存区的文件
git checkout <通配符号> // 一样,该命令也可以采用一些通配的方式
git checkout <分支名> file//恢复成指定分支下的文件
git checkout -b <本地分支> origin/<远程分支>//创建一个本地分支,让本地分支与远程分支关联,前提是远程分支必须存在。
git checkout -t origin/<远程分支>//创建一个与远程分支名一样的本地分支并关联,前提是远程分支必须存在。
git reset HEAD <file> //可以将暂存区的文件恢复到工作区,至于<>中的参数,可尝试变通(如通配?)。
git rm <file> //删除文件,和add的命令相反
git log//可以查看本地现在仓库的信息。有版本号、作者、日期。该命令可以在后面添加不同的参数有不同的效果
git log --graph --pretty=oneline//可以查看分支合并图
git reset --hard HEAD^ //版本回退,一个^代表回退一个版本
git reset --hard <版本号> //可通过git log 查看提交的版本号,版本号可以指填写前几位就行。
git branch//查看本地所有分支
git branch -r//查看远程所有分支
git branch -a //查看所有分支
git branch -vv //查看本地分支和远程分支的关联关系
git branch --set-upstream-to=origin/<远程分支名> <本地分支>//将分支关联,前提是远程分支必须存在
git push origin --delete <远程分支>//删除远程分支

3、注意的一些点

  • git push
使用git push命令,将本地分支推到远程分支,有以下几个注意的点:
假如创建一个本地分支(test),并且想要关联的远程分支(test)存在时
git checkout -b test origin/test //创建本地分支并与远程分支关联,之后使用git push命令就会默认推送到该远程分支。
又或者
git checkout -b test//创建本地分支
git branch --set-upstream-to=origin/test test //关联分支,之后也可以使用git push命令就会默认推送该关联的分支。

假如创建一个本地分支(test),但是没有想要关联的远程分支时,想创建一个远程分支和test关联。
这时候我们没办法使用git checkout -b test origin/test //因为没有远程分支的存在,所以没办法关联。
我们由于没有关联,我们是没办法使用git push命令
我们可以使用
git push origin test:test //第一个参数test代表要推送的远程分支名,第二个test代表本地的一个分支,冒号之间不能又空格
git push origin test //如果不填第二个参数,则代表本地当前所处的分支。
以上两条命令可以创建一个test远程分支,并推送,但是本地分支test并没有与远程分支test关联,之后还想要推送的话也必须带上远程分支名,如:git push origin test 。
可以绑定关联,git branch --set-upstream-to=origin/test test,又或者带上参数git push -u origin test
或者 git push --set-upstream origin test,-u和--set-upstream效果相同,都是关联分支信息,并推送,之后就可以直接git push

并不是说本地分支一定得和远程分支的名字一样,可以通过:
git push <-u 可选参数,加上即关联> origin HEAD:<创建的远程分支名>
本地分支和远程分支名字不一样,即使关联了,之后的push依旧不能git push。需要使用git push origin HEAD:<远程分支名>
所以为了方便,还是最好让本地分支和远程分支的名字一样吧
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值