git&github教程及命令

来源:互联网 发布:手机淘宝不能分享链接 编辑:程序博客网 时间:2024/05/18 17:39

git是一个版本管理软件,能够方便保存各个时期修改的版本并且回复。分布式的结构方便团队协作开发。
github是一个远程的网络仓库,可以将自己写的代码放到github上。也可以在github上拉去别人的代码进行开发修改。
安装:
linux:sudo apt-get install git
windows:直接官网下载,https://git-scm.com/downloads。
windows中安装后使用gitBash打开git命令口,进行命令管理。也可以下载sourceTree进行可视化管理,sourceTree可以在官网下载,https://www.sourcetreeapp.com/。个人觉得在windows下使用sourceTree非常方便管理。sourceTree使用需要注册bitbucket账号,并且只能翻墙注册。
linux下可以直接使用命令更加方便,git本来就是给linux开发的。
下面主要介绍git的主要应用的命令。
1.设置本地名字与地址

$ git config --global user.name "Your name"$ git config --global user.email "email@example.com"

2.创建仓库repository
在一个空文件夹下运行该命令,创建本地代码仓库。

$ git init

3.把文件添加到仓库/把修改添加到暂存区

$ git add <filename.txt>

4.把暂存区内容提交到仓库

$ git commit -m"description"

-m后面时本次提交 的说明
5.查看仓库当当前状态

$ git status

6.查看未提交的修改

$ git diff <filename.txt>

7.查看commit历史

$ git log
$ git log --pretty=oneline
$ git log --graph --pretty=oneline --abbrev-commit

查看分支合并的图

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

8.git中HEAD
HEAD->master->最新版本
HEAD指向当前分支,当前分支master指向最新的版本。
HEAD^表示上一个版本,HEAD^^上两个版本,HEAD~100第前100个版本。

9.退回版本

$ git reset --hard HEAD^
$git reset --hard <commit id>

或用版本号commit id 退回,commit id只用输前几个就行,别太少。

10.退回未来,退回后再返回刚才版本
查看之前的历史commit id

$git reflog

11.版本库,工作区,暂存区
这里写图片描述
(图片来自网络,侵删)
$ git add 就是将工作区修改添加到暂存区,$ git commit 就是将暂存区提交到版本库。HEAD为指向当前分支master的指针,master为指向最新版本的指针。

12.checkout命令

$ git checkout -- filename.txt

清除工作区修改的内容,返回到暂存区内容,若暂存区没有则返回为版本库内容。

$ git checkout master

跳转到master分支

$ git checkout -b dev

创建dev分支并跳转到dev分支

13.删除文件
在文件夹中删除后

$ git rm filename.txt$ git commit -m "remove filename.txt"

14.SSH创建以及添加到github

$ ssh-keygen -t rsa -C "youremail@example.com"

用户主目录可找到.ssh文件,其中id_rsa为私钥,不能泄露。id_rsa.pub为公钥。打开github->Settings->SSH Keys,添加id_rsa.pub的内容。

15.关联远程仓库

$ git  remote add origin git@github.com:SXKai/hello-world.git

origin后面的内容可以通过github生成。如果没有绑定SSH,也可以通过http的关联,不过需要输入用户名跟密码。

16.将本地库推送到远程分支

$ git push -u origin master

将本地当前分支与远程库master关联并推送,-u关联,以后可以不加-u。

17.查看本地库关联远程库情况

$ git remote -v

加上-v可以查看push跟pull的地址。

18.从远程库克隆一个本地库

$ git clone git@github.com:SXKai/hello-world.git

19.创建分支

$ git branch dev$ git checkout out

创建并转到dev分支

$ git checkout -b dev 

创建并转到dev分支

$ git checkout -b dev origin/dev

创建并转到dev分支,并关联远程库的dev分支

20.查看分支

$git branch

加*表示当前所处分支

21.合并指定分支到当前分支

$ git merge dev

22.删除分支

$ git branch -d dev

23.拉取分支

$ git pull

拉去的分支必须与远程库的分支建立关联。

24.储存工作区现场

$ git stash

25.查看储存

$ git list

26.回复储存

$ git stash apply
$ git stash apply stash@{0}

27.删除储存

$ git stash pop

28.打标签

$ git tag <XXX>

给当前分支最新的commit打标签。

$ git tag <XXX> commit_id

给历史上一次commit打标签

$ git tag -a <XXX> -m "version 0.1 released" 3628164

打带有说明的标签,-a后加标签名,-m后加说明

29.查看标签

$ git tag
$ git show <XXX>

查看特定标签信息。

30.推送标签到远程库

$ git push origin <XXX>
$ git push origin --tags

31.删除标签

$ git tag -d <XXX>

删除本地标签。

$ git push origin :refs/tags/<XXX>

删除远程标签。

32.忽略特殊文件
git工作区的根目录下创建.gitignore文件。https://github.com/github/gitignore可以下载配置好的文件。

33.强制添加
当被ignore的文件需要add跟commit的时候,可以使用-f。

$ git add -f filename.txt

34.检查ignore文件
检查哪个地方ignore了该文件。

$ git check-ignore -v filename.txt

35.给命令重命名

$ git config --global alias.co checkout

补充:当运行某个指令后,出现,无法输入的情况,可以使用q进行退出。

WALDM

原创粉丝点击