github常用操作
在git中使用pwd可以直接查看当前目录
阮一峰《git常用命令》
个人认为 origin 指的是文件的最源头,可以是本地的,也可以使远程的。 而origin master实际上就是本地的master分支,即origin/master, 而完整的写法应该是 git push origin master:master。 后者是远程的master分支。
git push origin master:master 即 git push 是为了push, origin master是指本地的master分支,远程的master省略默认。
1. 建立一个本地仓库?
在指定的文件夹下新建文件,进入后右键git bash here, 然后git init 创建本地仓库。
2.创建本地仓库后,如何同远程仓库相关联?
即这时你有一个本地仓库,而希望和远程仓库关联。只需 git remote add origin ......
后面的省略号表示点击git远程仓库的clone后得到的地址。 如果是团队合作,如使用bitbucket, 这时我们就相当于和自己的远程相连,而自己的远程已经有了团队合作的相关代码。
3. 如何克隆一份到本地仓库?
直接git clone ...... 即可
4. 如果希望进行团队合作,已经关联了远程库,还该怎么做?
很简单,使用git pull 命令即可,该命令的作用是取回远程主机某个分支的更新,再与本地的指定分支合并,当然如果本地分支什么都还没有,这时就可以得到完整的分支,但是这个分支还只是自己的本地分支,在远程上并不存在(因为没有push过去)。输入的本地分支名这时就被自动创建了。
方法: git pull <远程主机名><远程分支名>:<本地分支名>
git pull 远程主机名 即可, 一般我们省略远程分支和本地分支,都是 master ,就像进入一个文件夹,可以省略index.html/index.js 是一样的。
4.1 如在本地有一个仓库,然后和远程关联并push,接着在github官网上添加了 md文件,但是本地没有,该怎么办?
直接 git pull 即可。就是将远程的fetch下来然后又合并了。
5. 关于本地分支有哪些必须要知道的?
a.输入git branch 即可查看本地的所有分支,一般默认情况下都只是有本地的master分支,且*所指向的就是当前所在的分支。使用git branch -a 可以查看本地和远程的分支。a即all的意思。 使用 git branch -r即可查看远程分支。
b.输入git branch <name> 即可创建本地的一个分支
c.输入git checkout <name> 即可切换到本地的<name>分支
d.如果在某个分支上完成了任务,并且已经push到远程上,这时我们就不需要这个分支了,就可以git branch -d <name> 强制删除这个<name>分支。
e.如果要删除远程的分支,可以使用git push origin –delete 分支名。
f. 如果要删除本地已经合并了的分支名,可以使用 git branch -d 分支名; 如果要删除本地没有合并的分支,可以使用 git branch -D 分支名
6. 在本地仓库中修改了文件应该怎么提交呢?
本地仓库中,我们分为工作区(working)、暂存区(stage)以及版本控制区。
我们每次所作的修改都是在工作区之中的,为了能被版本控制或者push到远程,我们需要先 git add <name>将文件添加到暂存区,如果一次修改了很多文件,那么这样一条一条的git add <name> 显然是很复杂的,这时候,我们就可以使用 git add --all 一次性将所有的文件都添加到暂存区,然后 git commit -m "一些说明性的文字",这样就提交到了本次的管理仓库。
6.1 有时候我们在提交之后,又改了一部分,使用git status可以发现提示 git add <file> 即将文件放在暂存区, 另一个提示就是 git checkout -- <file>即将文件回退到没有修改之前的样子(注意:其中在--和<file>之间必须要有空格)。
7. 如何提交本地文件到远程 ?
之前我们谈到如何将本地仓库与远程关联,可是仅仅是关联并没用啊,我们应该如何把新添加(或修改)的本地文件放到远程上呢?
只需 git push -u origin master (第一次,以后直接git push origin master即可)
这条命令的意思就是将自己的master分支推送到远程origin上,
8. 如何在gitbash中复制粘贴?
复制: shift+Del
粘贴:shift+Ins
9.有时候我们可能遇到下面的错误:
我遇到这个错误是开始的时候就遇到了,远程仓库为空,然后上传文件,在push的时候出错,提示push到远程被拒绝是因为我现在的分支落后,所以不能push,如果你觉得没错的话,可以强行push,使用
git push --force origin master
或 git push -f origin master
这个有时候也不可行,可参考https://www.oschina.net/question/780536_121856 中的答案。
不错的做法是开始时不要建立readme文件!
更好的做法是在将本地仓库提交到远程时再添加readme文件,如下:
10.刚开始建库为什么会出现上面的情况?
这是因为我们在建库的时候同时设定了创建一个readme文件,于是远程库就会比我们的本地库新,所以最好的做法是一开始建库的时候不要选择建立readme文件的库,而是建立一个真正的空库。
11. 如何在github上删除一个库?
进入一个库,如下:
看到在中间偏右偏上部分有一个settings,点进去,到页尾,看到下面的删除了吗,直接删除即可!
12.如何查看自己放在github上的html在线演示?
其实做到这个也是非常简单的,首先必须保证这个html文件是在根目录下的。
第一步:进入希望看到的html页面的代码页中
第二步:将上面蓝色的url全部复制下来,
https://github.com/zzw918/swiper-use-jquery-/blob/master/swiper_jqurey.html
第三步:在上面的url前加上下面的前缀:
htmlpreview.github.io/?
最终即为:
htmlpreview.github.io/?https://github.com/zzw918/swiper-use-jquery-/blob/master/swiper_jqurey.html
这时就可以直接在浏览器的地址栏中输入并看到效果了。
13. 我把代码 git add --all 然后 git commit 之后, 并且push了代码,请求合并的时候,有冲突,于是pull了一份下来,这时代码就改变了,但是我又不想pull,希望回退到pull之前的版本,则我们可以使用命令:
git reset --hard
14. 我现在远程将一个css文件修改,然后又在本地修改同一个css文件,然后push,发现提示出错。
其实这就是因为冲突了,系统提示我在冲突时应当先pull,然后再push。
说明: 我之前在本地就是master分支,所以发生冲突也是在这个分支上。
我输入 git pull, 于是pull 成功。 (push与pull和SMTP与POP3的是一样的,一个是推,一个是拉)
说明: git pull,实际上就是 git fetch 和 git merge的命令组合。
然后我打开文件,发现如下:
.question { position: relative; height: 30px; 250px; <<<<<<< HEAD color: red; ======= color: green; >>>>>>> c2a5e8ab943cdaed5e07d3b1b7a62dfc6aa17949 }
前者是HEAD的color: red,即本地的文件,而后者是color:green; 是远程的文件,这就是冲突。 注意对于远程我们看到了一堆数字,这就是版本号。 根据git log可以查看版本。
于是需要手动修改冲突,即把远程的color: green;删掉,然后把多余的线删掉即可。再push。因为pull是先fetch在merge。
然后再push就可以了。
当然我们也可以不用先pull,如果你有把握就可以直接强行push。
方法 : git push -f origin master即可 或 git push --force origin master。 即强行推。
另一种情况,一直是你一个人修改文件,而别人没有修改,那么无论你怎么修改都可以直接push成功,因为没有冲突啊。
说明: 如果远程修改了,你然后也修改了同一个文件,然后push,肯定不成功,所以这时候就要先pull下来,然后就说明此时你已经和远程在同一个时间轴上了,刚刚不在一个时间轴,这时候你再在文件中修改冲突的地方(即由黄色警告的文件)就可以解决冲突了。
15、 如何把只在github上的代码放在本地,并且本地修改之后还能提交呢?
- 第一步:新建一个文件夹
- 第二步:git clone ...
- 第三步:修改你的文件之后,git add --all、 git commit -m 'commit'
- 第四步:git remote add origin
- 第五步:git push origin master --force
- 成功!
注:http://htmlpreview.github.io/? 我们可以直接点进去这个网站看到它希望我们做的事情,非常棒!