Articles19
Tags0
Categories0

git的一些用法

学习网站:https://www.liaoxuefeng.com/wiki/896043488029600

1.安装(window):在Windows上使用Git,可以从Git官网直接下载安装程序,(网速慢的同学请移步国内镜像),然后按默认选项安装即可。

安装完成后,可以开始菜单找到“Git”->“Git Bash”

安装之后,设置用户名和邮箱:

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

2.创建版本库:

$ mkdir learngit
$ cd learngit
$ pwd
/Users/michael/learngit
$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/

pwd命令:用于显示当前目录

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

注意:千万不要使用Windows自带的记事本编辑任何文本文件。

3.添加文件到仓库:

git add readme.txt

注意:文件要放在你建好的仓库的文件夹里。

4.提交:

$ git commit -m "wrote a readme file"
[master (root-commit) eaadf4e] wrote a readme file
 1 file changed, 2 insertions(+)
 create mode 100644 readme.txt

-m后面输入的是本次提交的说明

5.查看仓库状态:git status (可以告诉我们文件是否被修改)

6.查看文件修改的内容:git diff

7.查看历史记录(版本记录):git log

8.版本回退: git reset –hard HEAD^

在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

9.回到原来的版本或特定版本:

 git reset --hard 1094a //1094a是版本号,无需写全

10.git的存储:工作区(git add)====>stage(git commit)===>master

10.撤销工作区的修改:git cheout – read.txt (–前后都有空格)

11.撤销stage的修改,使之回到工作区:

git reset HEAD read.txt

12.删除文件:在仓库文件夹删除文件后,工作区和版本库就不一致了,git status命令会立刻告诉你哪些文件被删除了

此时,你可以(1)删除版本库的文件:git rm text.txt

(2)把误删的文件恢复:git checkout – test.txt

13.把本地仓库添加到远程仓库:

关联:git remote add origin git@github.com:michaelliao/learngit.git

(后面是你自己hithub仓库的名字)

推送:git push -u origin master

(是把当前分支master推送到远程)

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令

14 克隆远程库到本地库:git clone git@github.com:michaelliao/gitskills.git

15.分支管理:

创建分支并切换到该分支: git checkout -b dev

查看当前分支:git branch

$ git branch
* dev
  master

*号的为当前分支

提交当前分支:git add read.txt

切换回master分支:git checkout master

将dev分支的工作成果合并到master:git merge dev

git merge命令用于合并指定分支到当前分支。

删除dev分支:git branch -d dev

16.解决冲突:当不同分支要合并时存在冲突内容,先用git status 查看冲突,在手动修改

17.禁用快速合并:git merge –no-ff -m “merge with no-ff” dev

合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。

18.存储工作现场:git stash

​ 查看存储的工作现场:git stash list

​ 恢复工作现场:git stash pop (恢复的同时把stash内容也删了)

​ git stash apply (stash内容并不删除)

19.强制删除:git branch -D feature-vulcan

20.查看远程库:git remote (加入 -v:显示更详细的信息)

21.推送分支:git push origin dev

22.多人协作:当从远程库clone时,只能看到本地的master分支,要在dev分支开发,就必须创建远程origin的dev分支到本地:

git checkout -b dev origin/dev

当多人推送产生冲突时,Git已经提示我们,先用git pull把最新的提交从origin/dev抓下来,然后,在本地合并,解决冲突,再推送:

$ git pull
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.

    git pull <remote> <branch>

If you wish to set tracking information for this branch you can do so with:

    git branch --set-upstream-to=origin/<branch> dev

git pull也失败了,原因是没有指定本地dev分支与远程origin/dev分支的链接,根据提示,设置devorigin/dev的链接:

git branch –set-upstream-to=origin/dev dev

再git pull,最后手动解决冲突后再提交,push

因此,多人协作的工作模式通常是这样:

  1. 首先,可以试图用git push origin <branch-name>推送自己的修改;
  2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
  3. 如果合并有冲突,则解决冲突,并在本地提交;
  4. 没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!

如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>

23.标签:

创建:切换到要打上标签的分支上,再打上标签,也可以根据版本号打上标签:

git branch

git tag v1.0

git tag v 0.9 f52c

查看:

git tag

创建带有说明的标签:

git tag -a  v0.1 -, "version 0.1 released" 1094adb

用命令git show <tagname>可以看到说明文字

删除标签:

git tag -d v0.1

推送某个标签:

git push origin v1.0

一次性推送全部尚未推送到远程的本地标签:

git push origin --tags

如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:

$ git tag -d v0.9
Deleted tag 'v0.9' (was f52c633)

然后,从远程删除。删除命令也是push,但是格式如下:

$ git push origin :refs/tags/v0.9
To github.com:michaelliao/learngit.git
 - [deleted]         v0.9
Author:shuo
Link:http://yoursite.com/2019/08/23/git的一些用法/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可