具体 git命令
https://www.cnblogs.com/convict/p/10795320.html
01 git的安装
检测当前电脑有没有安装 git
git --version
如果没有显示版本号,则进入官网 https://git-scm.com/
按照系统识别安装git
版本.
02 github的简介以及账号注册
地址:
https://github.com/
03 仓库的概念以及如何创建仓库
在
Git
网站中点击添加仓库
填入,仓库
名称, 描述等即可.
04 上传代码至github
- 先新建一个文件夹,和仓库名字一致,例如就叫
test-demo
- 在这个文件夹中,书写自己的代码.
- 如果有不想上传到 github 上面的代码,可以 新建一个文件
.gitignore
(名字不能修改!必须是这个.) - 在项目目录
test-demo
下,打开终端
- 输入
git init
(初始化一个git
仓库)- 输入
git add .
- 输入
git commit -m '第一次上传文件'
- 在之前的
git仓库
中, 复制最后2条命令 依次输入到终端下.
git remote add origin git@gitee.com:zyzl22/test-demo.git
git push -u origin master
-
如果点了
使用Readme文件初始化这个仓库
此时,我们在第5步
之前,需要 先运行git pull --rebase origin master
把线上的文件拉到本地.之后就可以正常操作了. -
如上,代码就被上传到我们之前建立的
仓库
中. 出现如下代码,表示成功.
zhangqiang@zhangqiang:~/Desktop/daywork/daywork/2020/12/1227/02-mayun/test-demo (master) % git remote add origin git@gitee.com:zyzl22/test-demo.git
zhangqiang@zhangqiang:~/Desktop/daywork/daywork/2020/12/1227/02-mayun/test-demo (master) % git push -u origin master
Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Delta compression using up to 12 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (6/6), 787 bytes | 787.00 KiB/s, done.
Total 6 (delta 0), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-5.0]
To gitee.com:zyzl22/test-demo.git
* [new branch] master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.
05 想要找到所有的操作记录时如何进行操作
- 查看当前项目的
git状态
git status
- 查找之前项目
所有
的git提交记录
git log
- 查看某一个人的提交记录
git log --author=‘名字’
06 配置用户名和邮箱
- 先检测
git
本地是否安装
git status //显示版本号表示已经安装了.
- 配置
用户名
, 最好和github
上面一样
git config --global user.name ‘名字’
- 配置
邮箱
, 最好和github
注册的邮箱一致
git config --global user.email
邮箱地址
- 怎么判断我们配置的
用户名
和邮箱
是否正确呢?,如下命令
git config --global --list
07 想要修改项目中的文件时如果进行操作
- 先正常修改文件,然后运行如下命令,将代码提交到线上.
git add . //提交所有代码 // 把文件放到暂存区
git commit -m '测试提交' // 将暂存区的内容提交到本地库
git push -u origin master // 本地库某个分支推送到远程库,分支必须指定
08 想要删除不需要的文件时如何进行操作
- 正常删除, 然后提交代码
git add . //提交所有代码 // 把文件放到暂存区
git commit -m '测试提交' // 将暂存区的内容提交到本地库
git push -u origin master // 本地库某个分支推送到远程库,分支必须指定
- 用
git
命令删除
git rm demo3.html(文件名)
git rm demo3.html(文件名) //删除
git add . //提交所有代码 // 把文件放到暂存区
git commit -m '测试提交' // 将暂存区的内容提交到本地库
git push -u origin master // 本地库某个分支推送到远程库,分支必须指定
09 想要给文件重命名时如何操作
- 手动修改
- 案例: 将demo2.html 修改成 home.html
git add .
git rm demo2.html
git commit -m '手动重命名文件'
git push -u origin master
git命令
修改
- 案例: 将 home.html 修改成 demo2.html
git mv home.html demo2.html
git commit -m '命令行重命名文件demo2'
git push -u origin master
10 想要移动文件到其他位置时如何进行操作
- 把文件放到文件夹中
案例: 把 demo.html
放到同级的 home
文件夹中
git mv demo.html home
git commit -m '移动文件夹'
git push -u origin master
- 把文件放到文件夹中且修改文件的名称
案例: 把demo2.html
放到 home
文件夹下, 且修改为 home.html
git mv demo2.html home/home.html
git commit -m '移动文件并且重命名'
git push -u origin master
11 文件有变化时如何查看文件前后变化
- 第一种方式
案例: 查看 home/home.html
的文件前后变化
git log --pretty=oneline home/home.html //查看id,并赋值id
git show f5e3cdaf365022d09362086b1ae35472773cfa7b
- 第二种方式
案例: 查看 home/demo.html
的文件前后变化
git log -p home/demo.html
12 操作失误的情况下如何实现一键还原
案例: 例如修改了 home\home.html
里面的内容,但其实并不需要修改,则 可以用 git
让这个文件,还原到上一次修改的状态.
git checkout -- home/home.html
如上,就可以把文件还原到上一次提交时候的状态.
13 不再追踪时如何实现撤销追踪操作
案例: 例如修改了 home\home.html
里面的内容, 然后git add .
提交之后, 用 checkout
就不行了. 需要下面的方式来操作.
-
撤销追踪, 等于对这个文件撤销了
git add .
之后就可以用12
的checkout
命令来还原
了. -
git reset HEAD home/home.html
-
git checkout -- home/home.html
14 想要回到上一版本或者指定版本时如何进行操作
案例: 新建文件 version.html
然后依次修改并依次提交 5个版本
.
git reset --hard HEAD^
一个^
就是上一个版本, 二个^^
就是上二个版本.
还有一个方法,就是用 git log
拿到具体的 id
然后通过下面命令来指定回到特定版本
git reset --hard 63a8b447d2370d5d2fe5ae119f1d16b483711cd4
63a8b447d2370d5d2fe5ae119f1d16b483711cd4就是id
15 想要将某一个文件回到指定版本时如何进行操作
案例: 例如我们需要将 version.html
这一个文件回到过去的某个版本
,其他文件保持原状.
git checkout 44ad6946fb3cd5a3edbc3d9888fdd186ac18d9e2 -- version.html
44ad6946fb3cd5a3edbc3d9888fdd186ac18d9e2是git log
查到的具体id
,version.html
是我们需要还原的文件.
16 想要修改内容之后推送至远程仓库时如何进行操作
git add . //加到暂存区
git commit -m '描述` //提交到本地库
git push origin master //提交到线上
17 想要给每个版本创建一个独特标签,做所有版本标签管理时如何操作
- 命令
git tag v1.0
v1.0
是自己取得标签名
- 查看
标签
git tag
加的标签是默认加在最新的一次提交中.
给 指定id
创建一个 标签
git tag v0.5 2f9b69385088b1b8593c76bb622923f7a1f5d5a8
v0.5
是我们自己取得标签名
,2f9b69385088b1b8593c76bb622923f7a1f5d5a8
是git log
的id
删除标签
- 命令
git tag -d v0.5
上传标签
到线上
git push origin v1.0
18 想要创建,切换,删除分支时如何操作
创建分支
git branch dev
dev
是自己取得分支名
查看当前分支
git branch
切换分支
git checkout dev
删除分支(不能删除当前所在的分支,如果当前分支有 commit 的操作也是不能删除的)
git branch -d dev
如果 当前分支已经做了commit
操作,还需要删除这个分支,可以用强制删除
, 如下命令
git branch -D dev
创建一个分支并进入这个分支
git checkout -b test2
这里的 test2
是新分支
的名字.
19 想要合并分支时如何进行操作
案例: 现在 子分支
上写代码,然后合并到 主分支
- 先进入
子分支例如dev
, 修改代码. git add .
提交,然后git commit -m '改dev分支的代码'
- 切换到
主分支master
命令是git checkout master
- 合并分支到主分支
git merge dev
, //把dev分支
合并到主分支
20 当合并分支有冲突如何正确的合并分支
案例: 在master分支
中修改了test.html
文件,之后git add .
git commit -m master分支修改test.html
之后再切换到 dev分支
, 也进行修改.之后提交,那么在合并时,就出现问题.
合并分支到主分支: git merge dev
,此时会出现如下冲突.
<<<<<<< HEAD
<div id="test">这是master分支的代码</div>
=======
<div id="test">这是dev分支的代码</div>
>>>>>>> dev
解决方法
git merge -abort
忽略其他分支
的代码, 保存此时分支
的代码- 手动删除代码,
<<<<<<< HEAD
,=======
,>>>>>>> dev
之后再git add .
,git commit -m xxx
,git push origin master
21 不同人想要查看版本路线如何进行操作
git log
查看日志
git log --oneline
简写查看日志
git log --oneline --graph
查看路线
* ab57a36 (HEAD -> master, origin/master) 合并之后的代码
|\
| * d37220d (dev) dev上的代码
| * f314a22 这是dev分支修改
* | 99074b8 master的代码
* | 733833f 解决冲突之后的代码
* | 6a9c16d 这是master分支修改
|/
* 9a4e8ff 修改dev分支的代码
* c3d0d6b (origin/dev) 修改css文件
* a9b7419 (tag: v1.0) 增加css和js文件
* 2f9b693 初始化项目
* 9d1bf09 Initial commit
22 不同人想要删除不想要的分支如何操作
git fetch
拉取远程仓库 (抓取远程库的指定分支到本地,但没有合并)
git branch -av
查看所有分支
删除分支
git push origin --delete 分支名
这样就删除了这个分支了. 但是一定要确保这个分支确实不需要了.
23 不同人修改了不同文件如何处理
get fetch
拉取所有分支
到本地.
不同人处理不同的文件, 可以直接上传. 之后 merge
到主分支上面去.
24 不同人修改相同的文件如何处理
查看线上分支 git branch -av
在本地新建一个仓库,并和线上一致且进入这个分支 git checkout -b test remotes/origin/test
remotes/origin/test
就是线上的分支,使用上面的代码查出来的.
以此提交,如果失败,用 git pull
拉取不同的部分, 修改好之后, git add .
git commit -m xxx
再 git push
继续提交.