Git学习命令使用

1. 下载安装Git

学习来源:添加链接描述

2. 使用命令

  • git创建全局用户

git config --global user.name “xzb”
git config --global user.email “[email protected]

  • 切换盘符

cd e:

  • 创建文件

mkdir learngit

  • 显示当前目录

pwd

  • 初始化目录为git仓库

git init

  • 查看目录下文件

ls -ah

  • 添加文件到git仓库

git add readme.txt
git add file2.txt file3.txt 可以一次add等多个文件

  • 文件提交仓库

git commit -m “-m是提交文件的说明”
可以一次把add的文件都commit

  • 查看历史版本

git log 命令显示从最近到最远的提交日志
如果嫌输出信息太多,看得眼花缭乱的,可以试试加上–pretty=oneline参数
在Git中,用HEAD表示当前版本,也就是最新的提交
上一个版本就是HEAD^,上上一个版本就是HEAD^^, HEAD~50

  • 回退版本

git reset --hard HEAD^ 回退到上一个版本
git reset --hard 提交的ID 当回到上一个版本后, 当前版本在log中查找不到了, 可通过当前版本的commit_id 去再次还原回来

  • 记录你的每一次命令

git reflog 找不到新版本的commit id怎么办? 可以查找回来

  • 工作区 (一般是本地文件操作)
  • 版本库(.git) --> 暂存区 与 分支

– 查看状态信息

git status

  • 比较的是工作目录中当前文件和暂存区域快照之间的差异

git diff
git diff HEAD – readme.txt 查看readme.txt 文件在工作区与版本库之间的差异

  • 把文件在工作区的修改全部撤销

git checkout -- readme.txt 检出版本库中的文件或者是暂存区文件 作为工作区文件
就是让这个文件回到最近一次git commit或git add时的状态
没有–,就变成了“切换到另一个分支”的命令
git reset HEAD 可以把暂存区的修改撤销掉

  • 从版本库中删除该文件

git rm 文件, 删除文件 git commit
如果想要恢复, 可恢复版本, 如果还未commit, 也可以 git checkout – file文件

  • 本地仓库关联到GItHub

git remote add origin https://github.com/xzb-zzb/learngit.git
远程库的名字就是origin,这是Git默认的叫法,也可改为其他

  • 本地库上传到GitHub

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

  • git push origin master 推送本地master分支到远程origin仓库

将本地dev分支push到远端的master分支:git push origin dev:master

  • 克隆一个本地库

git clone https://github.com/xzb-zzb/gitskills.git

  • 查看分支

git branch

  • 创建分支

git branch 分支名称

  • 切换分支

git checkout 分支名称

  • 创建并切换分支

git checkout -b 分支名称

  • 和并某分支到当前分支

git merge 某分支名称

  • 删除分支

git branch -d 分支名称

  • merge的时候出现冲突

修改冲突文件
修改后 add commit 文件

  • 查看分支合并图

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

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

  • 把当前工作现场“储藏”起来, 存储当前分支

dev分支工作只进行到一半,还没法提交, 此时需要修改bug , 可以通过
git stash 保存当前分支
切换到master 新建一个bug分支, 修改bug , 修改之后, 删除bug分支, 再切换回dev分支
git stash list 查看之前保存的分支信息

  • 恢复存储的分支

一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;
另一种方式是用git stash pop,恢复的同时把stash内容也删了:

  • 主分支bug修复后, 同步dev分支修复bug

git cherry-pick 修复提交的commit_id

git strash 总的来说,就是,在分支下进行的工作,如果不commit的话,回到master,就会显示出你在分支下你添加的工作。这个时候,你在master下修改完bug提交后,正在分支进行的工作也会提交了。为了避免这个情况,你就在分支下,git stash将工作隐藏,这个时候,切换到master时候,修改了bug,提交。分支的内容不会被提交上去。

  • 丢弃一个没有被合并过的分支

git branch -D 强行删除

  • 查看远程库的信息

git remote
git remote -v显示更详细的信息

  • 把分支上的所有本地提交推送到远程库

git push origin master
master分支是主分支,因此要时刻与远程同步;
dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;
其他分支一般不推送远程了

  • 在本地创建和远程分支对应的分支

git checkout -b branch-name origin/branch-name

  • 建立本地分支和远程分支的关联

git branch --set-upstream branch-name origin/branch-name

  • 多人协作的工作模式通常是这样

首先,可以试图用git push origin 推送自己的修改;
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用git push origin 推送就能成功!
如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to origin/。

  • 打标签

git tag

  • 查看所有标签

git tag

  • 查看标签信息

git show
还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字

  • 删除标签

git tag -d 标签名称

  • 推送某个标签到远程

git push origin

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

git push origin --tags

  • 从远程删除标签

git push origin :refs/tags/

你可能感兴趣的:(git命令,Git)