Git命令

HEAD是一个指针,通常情况下它可以将它与当前分支等同(其实它是指向当前分支)

HEAD 表示当前版本,也就是最新的提交。上一个版本就是 HEAD^ ,上上一个版本就是 HEAD^^ ,往上100个版本写100个 “ ^ ” 比较容易数不过来,所以写成 HEAD~100 。HEAD~2 相当于 HEAD^^ 。

git实际上分为三个仓库,本地工作区,中间暂存区,远端仓库。

wps1.jpeg

提交命令

git add .

作用:把修改和添加的文件提交到暂存区,但不包括删除的文件。

git add -u

作用:把修改和删除的文件提交到暂存区,但不包括新文件

git add -a

作用:提交所有变化

撤销操作:当提交代码时不小心添加了错误文件,可以通过git reset HEAD进行撤销上次的全部提交,git reset HEAD ./../index.php 用来撤销某个文件。

注释命令

git commit -m “message”

作用:简要说明提交的改动。

查看改动命令

git diff

作用:查看当前工作区和版本库里最新版本的区别。

拉取命令

git pull

作用:从仓库或者本地的分支拉取并且整合代码。

git pull origin master

作用:拉取远程分支并且整合代码。

合并出现问题时可以通过git reset --merge进行回退

推送命令

git push

作用:把改动提交到当前分支上

查看分支

git branch

作用:查看所有本地分支

git branch -r

作用:查看所有远程分支

git branch -a

作用:查看所有分支

切换分支

git checkout

作用:检出(切换)分支

git fetch

作用:当git branch -a 查看不到新的分支,git fetch更新一下分支信息后就可以看见新分支了。

合并分支

git merge

作用:将其他分支合并到当前分支

恢复之前版本

git reset HEAD

作用:拉取最新一次提交到版本库的文件到暂存区,单独拉取某个文件用git reset HEAD -- index.php,然后git checkout可以拉取暂存区文件到本地仓库,同样的git checkout -- index.php可以从暂存区单独拉取一个文件到本地仓库。

git reset --hard 版本号

作用:拉取指定版本的文件到暂存区。

注意:如果想恢复到之前某个提交的版本,且那个版本之后提交的版本我们都不要了,就可以用这种方法。

恢复之前版本

git revert -n 版本号

注意:创建一个新的版本为之前提交的某个版本,可以先用git log 查看所有提交记录。

git revert HEAD~3

作用:撤销HEAD指针之前的第3个提交,并且生成一个新的提交。

注意:如果我们想撤销之前的某一版本,但是又想保留该目标版本后面的版本,记录下这整个版本变动流程,就可以用这种方法。

配置全局和局部的用户名、密码、邮箱

局部:
   git config user.name “用户名”
   git config user.passsword “密码”
   git config user.email “邮箱”
   全局:
   git config --global user.name “用户名”
   git config --global user.passsword “密码”
   git config --global user.email “邮箱”
   查看设置:
   git config --list


有时拉取代码失败可能需要当前克隆仓库的账号密码,使用以下命令:

git clone --bare http://username:password@gitlab.300.cn/package1/myProject.git

其中:

①如果username使用的是邮箱,那么@符号要用%40代替,例如:123@qq.com,要写成123%40qq.com

实践问题

最近一次commit有问题怎么办(不进行再一次提交修改本次提交)?

代码:

git add 我是修改内容.text
   gitcommit --amend

解释:

【amend】袖中,会对最新一条commit进行修正,会把当前的commit和暂存区的内容合并起来后创建一个新的commit,用这个新的commit把当前commit替换掉

刚提交完代码发现,还有没保存的文件,漏提交了上去了怎么办?

代码:

    git add 我是忘提交的文件.text
    git commit -amend --no-edit

解释:

他表示提交信息不会更改,在git上仅为一次提交。

刚写完的提交太烂了,不想要了直接丢弃怎么办?

代码:

    git reset --hard HEAD^
    git pull

解释:

HEAD表示HEAD^往回数一个位置的commit,HEAD^表示你要恢复到哪个commit。因为你要撤销最新的一个commit(也就是当前未提交的内容),所以你要恢复到它上一次commit,也就是HEAD^。那么使用git reset --hard HEAD^就会恢复到上次提交前的样子,这时候再git pull把最后一次commit拉取下来,这样刚写完的修改就被撤销了(注意:一旦撤销到某个版本,那么这个版本之后的记录会全部消失,例如撤销到倒数第二次提交,那么最后一次提交记录就会彻底消失)。

代码已经push到线上,我想撤回到某个版本怎么办?

代码:

    git revert HEAD

解释:

将代码回退到上一个版本,并生成一个新的提交记录,原历史记录不变。 实际上它commit了一条与上一个版本相反的内容,相互抵消,达到撤销的效果。