常用基本命令
1、git init :初始化 git 仓库
2、git status :查看当前仓库的状态
3、git add :先把改动提交到一个暂存区,临时保存改动。 例如:git add 1.txt
4、git rm --cached :如果在使用了git add后,不想让git版本库控制add的文件,使用这个命令。 例如:git rm --cached 1.txt
5、git commit : git add之后的操作,执行最后真正的提交。 例如:git commit -m "commit" -m代表提交的信息。
6、git log : 用来查看所有的commit记录。
7、git branch : 在执行 git init 初始化仓库之后会默认生成一个主分支 master,即所在的默认分支,也基本是实际开发正式环境下的分支,一般情况下master分支不会轻易直接在上边进行操作。 git branch 用来查看当前的分支情况。 新建分支: git branch 分支名, 例如 git branch a,新建一个名为a的分支。
8、git checkout :切换分支。 例如: git checkout a 切换到a分支,命令行中,分支前的*号用来标识当前所在的分支。 新建一个分支并自动切换到新建分支的命令: git checkout -b a
9、git merge :将代码合并到 master 分支。 需要进行两步操作:
【1】切换到 master 分支 -> git checkout master
【2】将分支合并到 master -> git merge a (将a分支的代码合并过来,但是可能会有冲突)
10、git branch -d (小写d):删除分支 例如: git branch -d a
git branch -D : 有时候可能会删除失败,使用这个命令可以强制删除分支。
11、git tag :给当前代码新建一个标签。
将本地和远程仓库关联
1、ssh :一种网络协议,用于计算机之间的加密登录。想要在github提交代码第一步要先添加SSH key配置
2、生成SSH key:
ssh-keygen -t rsa : 指定rsa算法生成密钥,接连三个回车键(不输入密码),然后会生成两个文件 id_rsa 和
id_rsa.pub。其中 id_rsa 是密钥,id_rsa.pub是公钥。
3、在 github 上添加SSH key:
将第二步中的id_rsa.pub中的内容粘贴到github对应位置。
添加成功后 ssh -T git@github.com 进行测试,提示 Hi ...说明 ssh key 添加成功。
向Github提交代码(两种方法):
1、Clone自己的项目,使用 git clone 命令将项目clone到本地,这个时候项目本身就是一个 git 仓库,不再需要执行git init ,并且已经关联好了远程仓库。 此时只需要修改或添加文件,然后commit,之后就可以执行 git push命令
2、关联本地已有项目时,如果我们本地已经有一个完整的仓库,使用第二种方法:
【1】在Github上建立一个项目
【2】把本地项目与Github上的项目进行关联,切换到本地项目的目录,执行:
git remote add origin git@github.com (自己项目的地址)作用是添加一个远程仓库,origin是给这个项目的远程仓库起的名字,大家公认的只有一个远程仓库时名字是origin。
给远程仓库起名字的原因:一个项目可能有多个远程仓库
3、查看当前项目有哪些远程仓库 : git remote -v
4、向远程仓库提交代码: git push origin master
5、提交代码前设置自己的用户名与邮箱:
>.git config --global user.name "piziliu"
>.git config --global user.email "impiziliu@163.com"
当某一个项目想要用特定的邮箱,只需要切换到你的项目 把以上代码中的 --global参数去除,重新执行一遍即可。
git进阶
1、alias :给常用的命令配置别名
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.br branch
也可以设置组合,例如 git config --global alias.psm "push origin master"
git config --global alias.plm "pull origin master"
2、配置打印日志的样式:
git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative"
3、默认情况下,git用的编辑器是vi,修改默认编辑器的命令:
git config --global core.editor "vim"
4、设置显示中文文件名: git config --global core.quotepath false
5、diff命令:在提交之前需要确认下,可以用diff命令查看到底做了哪些改动。
6、checkout命令 除了可以切换分支,切换tag, 还有一个撤销的作用。注意:checkout只能撤销还没有add进暂存区的文件。
7、stash命令:使用stash命令的前提是代码没有进行commit,即使执行了add也没关系。
【1】git stash :把当前分支所有没有commit的代码先暂存起来。
【2】git stash list :显示暂存区的记录
【3】git stash apply : 将暂存起来的代码恢复
【4】git stash drop :删除这次stash记录
git stash pop 命令跟apply唯一的区别就是,pop既可以将代码还原,还可以自动把stash记录删除。
【5】git stash clear 删除所有记录
8、merge命令和rebase命令区别:
merge 就是简单的合并,但是可以区分master分支的代码和刚刚提交的代码
rebase 会先将代码和分支上的代码进行比较,按照一定的规则重新将代码合并,但是很难分清代码来自哪个分支。