Git的一些常用方法

创建版本库

1、创建一个目录

这个目录里的文件可以被Git管理起来:

$mkdir learngit

$cd learngit

通过git init 命令把这个目录变成 Git 可以管理的仓库:

$ git initInitialized empty Git repository in D:/tools/Git/workspace/.git/

可通过ls -ah命令看到隐藏文件.git,这个目录是 Git 来跟踪管理版本库的

$ ls -ah

2、把文件添加到版本库

创建一个txt文件:

$ echo "hello git" > README.txt

第一步:用命令git add 告诉 Git,把文件添加到仓库:add可以多次。

$ git add README.txt

第二步:用命令git commit 告诉 Git,把文件提交到仓库:

$ git commit -m "wrote a readme file"引号里是说明

第一步是用git add 把文件添加进去,实际上就是把文件修改添加到暂存区;

第二步是用git commit 提交更改,实际上就是把暂存区的所有内容提交到当前分支。

仓库状态

1、运行git status 命令看看结果:

$ git status

2、可以用git diff 命令查看修改的内容

$ git diff README.txt

版本回退

1、可以用git log查看历史记录:

git log 命令显示从最近到最远的提交日志,我们可以看到 3 次提交

$ git log

分记录显示:

$ git log --pretty=oneline

commit id 不是 1,2,3……递增的数字,而是一个 SHA1 计算出来的一个非常大的数字,用十六进制表示

2、版本回退

Git 必须知道当前版本是哪个版本,在 Git 中,用 HEAD 表示当前版本,也就是最新的提交3628164...882e1e0 (注意我的提交 ID 和你的肯定不一样),上一个版本就是HEAD^ ,上上一个版本就是HEAD^^ ,当然往上 100 个版本写 100 个^ 比较容易数不过来,所以写成 HEAD~100。

$ git reset --hard HEAD^

还可以返回原来的版本

$ git reset --hard 0066249b4e1bfb41eeb1faa07c8b569d1f835e96(版本号)

Git 的版本回退速度非常快,因为 Git 在内部有个指向当前版本的 HEAD 指针,版本回退时,只是把head指针的位置从现在这个版本指向返回的那个版本

Git 提供了一个命令git reflog 用来记录你的每一次命令:

$ git reflog

撤销修改

1、git checkout -- file 可以丢弃工作区的修改:

$ git checkout -- README.txt

命令git checkout -- readme.txt 意思就是,把 readme.txt 文件在工作区的修改全部撤销,这里有两种情况:• 一种是 readme.txt 自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;• 一种是 readme.txt 已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

2、用命令git reset HEAD file 可以把暂存区的修改撤销掉(unstage),重新放回工作区:

$ git reset HEAD readme.txt

删除文件

1、新建一个test.txt文件

$ touch test.txt

2、提交到分支

$ git add test.txt$ git commit -m "add test.txt"

3、删除文件

$ rm test.txt

4、删除过后

一、确实要从版本库中删除该文件,那就用命令git rm 删掉,并且git commit :

$ git rm test.txt

$ git commit -m "remove test.txt"

另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:

$ git checkout -- test.txt

传上我的GitHub

1、先提交到我的分支上

$ git add readme.txt

$ git commit -m "first commit"

2、传到我的GitHub上

$ git remote add origin https://github.com/Jerome77777/workspace.git

$ git push -u origin master

分支操作

1、查看分支

$ git branch

2、创建分支

$ git branch

3、切换分支

$ git checkout dev

4、创建+切换分支

$ git checkout -b dev

5、合并某分支到当前分支

$ git merge dev

6、删除分支

$ git branch -d dev

7、冲突

当在不同分支同时提交了东西,可能会造成冲突

Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容

当 Git 无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。用git log --graph 命令可以看到分支合并图。

8、准备合并 dev 分支,请注意--no-ff 参数,表示禁用 Fast forward:

$ git merge --no-ff -m "merge with no-ff" dev

合并后,我们用git log 看看分支历史:

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

9、Bug分支

Git 还提供了一个 stash 功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作:

$ git stash

创建临时分支

$ git checkout -b issue-101

查看之前的工作现场

$ git stash list

恢复现场:

方法一:用git stash apply 恢复,但是恢复后,stash 内容并不删除,你需要用git stash drop 来删除;

方法二:用git stash pop ,恢复的同时把 stash 内容也删了:

$ git stash pop

恢复到指定的stash

$ git stash apply stash@{0}

Feature分支

添加一个新功能时,你肯定不希望因为一些实验性质的代码,把主分支搞乱了,所以,每添加一个新功能,最好新建一个 feature 分支,在上面开发,完成后,合并,最后,删除该 feature 分支。

创建分支

$ git checkout -b feature-vulcan

切回 dev,准备合并:

$ git checkout dev

销毁分支

$ git branch -d feature-vulcan

强制删除

git branch -D feature-vulcan

猜你喜欢

转载自blog.csdn.net/jerome_777/article/details/81531671
今日推荐