一、常用命令
1:查看本机是否安装Git
命令:git version
2.克隆远程仓库
git clone 远程仓库地址(例如ssh:https://github.com/yourname/repository.git
)
3.初始化本地项目
git init
ps:会生成.git的隐藏文件夹
4.绑定远程仓库
git remote add origin <远程仓库地址>
5.拉取服务器代码
git pull origin master
6.查看当前工作目录树的工作修改状态
git status
如果项目中有修改的项目,Git控制台会显示其状态(增、删、改等),以及具体被改动的文件信息,显示颜色为红色。
其中状态信息:
1:Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged.
2:Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作.
3:deleted: 文件已删除,本地删除,服务器上还没有删除.
4:renamed:文件被重命名(一个文件的改动的行数低于总行数的50%的,并且进行重命名操作就会出现这种被标为renamed的情况)
7.将状态改变的代码提交至缓存
git add + 文件(如果将全部提交到暂存,则为 .)
git add -u + 路径:将修改过的被跟踪代码提交缓存
git add -A + 路径: 将修改过的未被跟踪的代码提交至缓存
例如:
git add -u 路径名称/路径名称/路径名称
将 路径名称/路径名称/路径名称 目录下被跟踪的已修改过的代码提交到缓存中
git add -A 路径名称/路径名称/路径名称
将 路径名称/路径名称/路径名称 目录下未被跟踪的已修改过的代码提交到缓存中
8.将代码提交到本地仓库中
git commit -m “提交注释部分,表示说明”
9.将代码推送到服务器
git push
10.可能出现的问题
1:误将代码提交到缓存中(利用 git add 命令误将代码提交的缓存中)
解决办法:利用 git reset 命令将撤回缓存中的代码。
2:误将代码提交到本地仓库(利用 git commit 命令误将代码提交到本地仓库)
解决办法:
git reset —soft + 版本号
回退到某个版本,只回退了commit的信息,不会改变已经修改过的代码。
git reset —hard + 版本号
彻底回退到某个版本,本地的代码也会改变上一个版本内容。
二、Git提交更新代码具体步骤
1.检查是否有可提交的文件
git status
(显示为Modified,则为修改的文件)
2.拉取更新服务器代码(防止冲突)
git pull origin master
3.添加所有提交的文件至缓存
git add .(意思是将你本地所有修改了的文件添加到暂存区)
(.代表全部,也可以只提交单个文件,格式:$ git add 文件名 可以用空格分隔,指定上传多个文件)
4.提交暂存区的文件
git commit -m “提交内容的注释”
“”里面的内容是提交说明(否则不允许提交)
5.上传到远程仓库
git push origin master
$ git status //检查是否有可提交的文件
$ git pull origin master // 提交之前可先更新一下,避免冲突发生(origin:远程仓库自定义名称 master:要提交的分支的名称)
$ git add . //添加所有可提交的文件
(备注:$ git add <file>.. 可只提交某个文件,用空格分割可以指定多个文件。)
$ git commit -m "提交内容的注释"
$ git push origin master //提交所有更新文件(第一次提交时可用 git push -u origin master)
三、命令整理
1.版本回滚
$ git log : 显示从最近到最远的提交日志
$ git reset --hard commitID : 回滚到某个版本
$ git reflog : 记录你的每一次命令
$ git push -f -u origin master : 提交回滚后的版本
2.撤销更改
$ git checkout -- file : 可以丢弃工作区的修改
$ git reset HEAD file : 可以把暂存区的修改撤销掉(unstage)
3.下载远程仓库(含有对方的.git文件夹)
$ git clone xx : 下载远程仓库(含有.git)
4.查看当前仓库的状态
$ git status //查看版本库状态,什么被修改过但还没提交的
$ git diff //查看当前相对上一次提交修改的内容
5.撤销修改
$ git checkout -- test.html
6.删除文件
$ rm test.index //可直接在文件管理中删除文件,要不用rm 命令去删除
$ git rm test.html //从版本库中删除
$ git commit -m '删除 test.html文件'
$ git branch -D <name> //丢弃一个没有被合并过的分支,可以通过强行删除。
7.解决冲突:
同一文件修改冲突,需要手动解决冲突后再提交。git status可查看冲突,根据标记可修改冲突部分,修改结束后再重新提交。
$ git pull //拉取远程内容
$ git log --graph //命令可以看到分支合并图。
8.改变Git颜色
$ git config --global color.ui true
9.分支
$ git branch : 列出所有分支
$ git branch <name> : 创建分支
$ git checkout <name> : 切换分支
$ git checkout -b xx : 创建并且切换到xx分支
$ git merge <name> : 合并到当前分支
$ git branch -d <name> : 删除分支
$ git log --graph : 查看分支合并图
$ 合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并
10.Bug分支
$ git stash : 把当前工作现场“储藏”起来
$ git stash list : 查看工作现场列表
$ git stash apply : 恢复-> 恢复后-> stash内容并不删除
$ git stash drop : 删除工作现场的内容
$ git stash pop : 恢复的同时把stash内容也删了
11.Tag标签
$ git tag <name> : 用于新建一个标签
$ git tag -a <tagname> -m xxx : 可以指定标签信息
$ git tag -s <tagname> -m xxx : 可以用PGP签名标签
$ git tag : 查看所有标签
$ git push origin <tagname> : 推送一个本地标签
$ git push origin --tags : 推送全部未推送过的本地标签
$ git tag -d <tagname> : 可以删除一个本地标签
$ git push origin :refs/tags/<tagname> : 可以删除一个远程标签
参考:
1.https://www.cnblogs.com/Angxf/p/10956416.html
2.https://blog.csdn.net/nimoyaoww/article/details/78985041?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2allfirst_rank_v2~rank_v25-1-78985041.nonecase&utm_term=git%E6%8F%90%E4%BA%A4%E6%9B%B4%E6%96%B0%E6%AD%A5%E9%AA%A4