git 常用命令

103 阅读4分钟

git流程:

image.png

一. 本地仓库的操作

1.获取git仓库

a.在本地创建git仓库:

    创建文件夹,在文件夹下执行:git init,出现.git代表初始化成功。

b.从远程复制仓库:

    git clone +远程仓库的地址

2.查看文件的状态:git status

git status -s 可以使输出的内容更简洁

3.将文件加入缓存区:

git add . (.代表加入全部的修改的文件)或 git add +文件名 

4.将加入缓存区的文件取消暂存:

git reset HEAD +文件名

5.提交暂存区的文件:

git commit -m +"日志信息"

6.删除文件:

git rm + 文件名

7.将文件添加到忽略的列表里:

在git bash命令行下执行:touch .gitignore ,打开.gitignore文件写入忽略的文件名,如要忽略.class结尾的文件,写入*.class即可。

8.查看日志记录:

git log   (退出查看log模式输入q即可退出)

二. 远程仓库的操作

1.查看远程仓库:

git remote  或 git remote -v (现实的信息会更全)  或者:git remote show origin (显示的信息会更全)

image.png

2.添加远程仓库:

git remote add origin +远程仓库的地址

3.移除远程仓库:

git remote rm + 仓库名(为了表达快捷文章之后的origin就代表仓库名,master就代表分支名)

4.从远程仓库抓取代码:

git fetch origin master ,他不会自动merge本地的代码,git merge origin/master 才会merge仓库的代码到本地;

5.从远程仓库拉取代码:

git pull origin master,他会自动merge代码到本地相等于git fetch+ git merge两个命令;

注意:如果本地工作区已存在远程仓库中的文件时,git pull会拉去失败,此时可以强制覆盖拉取:

git pull origin master --allow-unrelated-histories

6.推送到远程仓库:

修改文件后:
git commit -a -m "日志信息"(是 git add ,git commit -m的合并简写命令) ,
git push origin master

7.回退已经提交的修改:

git reset HEAD^ +文件名:可以将加入暂存区的文件回退到工作区
git checkout --+文件名: 可以取消文件的修改

8.回退到远程仓库的摸一个提交的版本:

commitid可以通过git log查看
git reset --hard +commitid

三. git分支操作

1.查看分支:

 git branch :    查看本地的分支,

 git branch -r : 查看远程仓库的分支, 

 git branch -a : 查看远程仓库和本地的所有分支;

 git branch -vv:显示本地分支和服务器分支的映射关系

2.创建分支:

git branch +分支名:创建分支

git checkout +分支名: 切换到分支

git checkout -b +分支名 :创建并切换到分支

3.推送本地分支到远程仓库:

git push origin +分支名

4.合并分支:

eg:将dev分支合并到master分支:

   1.切换到master分支:git checkout master,
   
   2.git merge dev;
   
合并分支往往不会很顺利,会产生冲突,此时需要手动解决冲突,继续git add ,git commit操作提交即可。

合并完成后记得git push origin master到远程仓库才会更新代码。

5.删除分支:

删除本地分支:git branch -d + 分支名

如果本地的分支的代码和远程仓库的代码不一样,删除分支会报错,可以将-d 改成-D来强制删除分支;

删除远程仓库的分支: git push origin -d +分支名

四.应用场景

场景1: 你在本地创建了自己的分支dev在开发一个新特性,然后你接到通知说master分支有问题,此时你需要切回到master分支,创建一个fix分支,修复好bug后你将fix 分支合并到master分支,然后继续切到dev分支继续开发你的新特性。

操作步骤: 

         1.git branch dev
         2.git checkout dev
         3.开发新特性
         4.git add .
         5.git commit -m "new feature development"
         6.接到通知
         7.切回master:git checkout master
         8.git branch fix
         9.git checkout fix
         11.git commit -a -m "fix master"
         12.git checkout master
         13.git merge fix
         14.git push origin master
         15.git checkout dev 继续开发自己的新特性

五.git标签

1.列出已有的标签:
        git tag 
        git show tagname
               
2.创建标签: 
        git tag tagname,

3.推送标签: 
        git push origin tagname

4.检出标签: 
        git checkout -b branchname tagname 

5.删除标签:
        删除本地标签:git tag -d [tagname]
        删除远程标签: git push origin :refs/tags/[tagname]
        

推荐的工具:tortoisegit 工具,

ssh公钥私钥生成命令:ssh-keygen-trsa