常用命令
1、上传本地项目到github:
1.1 github不存在的项目(即是新项目)
先new repository
然后:
(Tip:如果创建仓库时,勾选了“Initialize this repository with a README”,则不需要以下的操作)
git init
git add .
git commit -m “first commit”
git remote add origin https://github.com/用户名/项目名.git
git push -u origin master
1.2 如果是github已存在的项目,执行以下:
git status,看git是否获取到文件的更改
git add --all,将所有文件都添加到仓库,或者git add 具体文件
git commmit -m “注释语句”
git push
2、下载代码:
2.1 下载主分支代码
git clone https://github.com/用户名/项目名.git
或
git clone git@github.com:用户名/项目名.git
2.2 下载某一分支代码
git clone -b 分支名 地址
3、用户名和邮箱地址
3.1 查看用户名和邮箱地址:
查看用户名
git config --global user.name
查看密码
git config --global user.password
查看邮箱
git config --global user.email
查看git版本
git --version
查看配置信息
git config --list
3.2 修改用户名和邮箱地址
修改用户名
git config --global user.name "新的用户名"
修改密码
git config --global user.password "新的密码"
修改邮箱
git config --global user.email "新的邮箱"
用户名过多时:
git config --global --replace-all user.name "用户名"
git config --global --replace-all uesr.email "邮箱"
4、分支
1、查看本地分支
git branch
2、查看远程分支
git branch -a
3、切换分支
3.1、切换分支
git checkout newXX
3.2、创建新分支并切换到该分支
git checkout -b newXX
4、把新创建的分支推送到远程仓库命令
两种方式:
(1)比较暴力的方式:git push origin xxBranch推向指定的分支,这样做每次push都必须指定具体分支。
git push origin xxBranch
(2)使用关联远程分支,关联有一个好处,以后就不用每次git push都用第(1)种方法。
git push --set-upstream origin xxBranch
之后再推送代码就可以直接使用:git push
5、删除分支
5.1 删除远程分支
git push origin --delete <分支名>
5.2 删除本地分支
git branch -d <分支名>
6、查看版本提交记录
查看分支提交历史
git log
或查看某几条:
git log -2
查看某文件提交历史
git log --pretty=oneline xxx/xxx/xx.log
查看commit提交记录详情
git show commit_id
7、撤销
7.1 撤消add,没commit
git status 先看一下add 中的文件(绿色的)
git reset HEAD 如果后面什么都不跟的话 就是上一次add 里面的全部撤销了
git reset HEAD xxx.java 就是对某个文件进行撤销了
7.2 撤消commit,只commit没push.
git reset commit_id (回退到上一个 提交的节点 代码还是原来你修改的)
git reset –-hard commit_id (回退到上一个commit节点, 代码也发生了改变,变成上一次的)
7.3 撤销push
输入 git log: 找到错误提交之前的git push的 commit_id (即正确时候的commit_id)
输入
git reset --hard <commit_id>
git push origin HEAD --force
8、git merge某分支
merge冲突了,Git告诉我们,test.txt
文件存在冲突,必须手动解决冲突后再提交。git status
也可以告诉我们冲突的文件
<<<<<<< HEAD
Creating a new branch is quick & simple.
=======
Creating a new branch is quick AND simple.
>>>>>>> first
Git用<<<<<<<
,=======
,>>>>>>>
标记出不同分支的内容(HEAD为当前分支),我们vim修改后保存、提交。
$ git add test.txt
$ git commit -m 'conflict fixed'
[master 22e2f60] conflict fixed
用带参数的git log
也可以看到分支的合并情况:
$ git log --graph --pretty=oneline --abbrev-commit
* 22e2f60 conflict fixed
|\
| * e4a0083 merge
* | b5f0f2a 1111
|/
* 00ec932 committest
* 25851fc test11
* 7f89ecd test1
* 5701988 Initial commit
基本概念
工作原理 / 流程
- Workspace:工作区
- Index / Stage:暂存区
- Repository:仓库区(或本地仓库)
- Remote:远程仓库
工作区(Working Directory)
就是你在电脑里能看到的目录,比如上文中的 demo
文件夹就是一个工作区
本地版本库(Local Repository)
工作区有一个隐藏目录 .git
,这个不算工作区,而是 Git
的版本库。
暂存区(stage)
本地版本库里存了很多东西,其中最重要的就是称为 stage
(或者叫index)的暂存区,还有 Git
为我们自动创建的第一个分支 master
,以及指向 master
的一个指针叫 HEAD
。
远程版本库(Remote Repository)
一般指的是 Git
服务器上所对应的仓库,本文的示例所在的github
仓库就是一个远程版本库
分支(Branch)
分支是为了将修改记录的整个流程分开存储,让分开的分支不受其它分支的影响,所以在同一个数据库里可以同时进行多个不同的修改
主分支(Master)
前面提到过 master
是 Git
为我们自动创建的第一个分支,也叫主分支,其它分支开发完成后都要合并到 master
标签(Tag)
标签是用于标记特定的点或提交的历史,通常会用来标记发布版本的名称或版本号(如:publish/0.0.1
),虽然标签看起来有点像分支,但打上标签的提交是固定的,不能随意的改动,参见上图中的1.0
/ 2.0
/ 3.0
HEAD
HEAD
指向的就是当前分支的最新提交
常见问题
Github无法加载或不显示图片问题
- Mac终端输入
sudo vi /etc/hosts - 输入密码后,点击 i键,进入Insert模式,将下面内容拷贝进去
140.82.114.4 github.com
140.82.114.4 gist.github.com
185.199.108.153 assets-cdn.github.com
151.101.64.133 raw.githubusercontent.com
151.101.108.133 gist.githubusercontent.com
151.101.108.133 cloud.githubusercontent.com
151.101.108.133 camo.githubusercontent.com
151.101.108.133 avatars0.githubusercontent.com
151.101.108.133 avatars1.githubusercontent.com
151.101.108.133 avatars2.githubusercontent.com
151.101.108.133 avatars3.githubusercontent.com
151.101.108.133 avatars4.githubusercontent.com
151.101.108.133 avatars5.githubusercontent.com
151.101.108.133 avatars6.githubusercontent.com
151.101.108.133 avatars7.githubusercontent.com
151.101.108.133 avatars8.githubusercontent.com
- 点击esc 键,然后输入:wq 保存退出即可。
- 再去打开或刷新Github页面,图片已经可以加载出来了。