Git 命令

git init命令把这个目录变成Git可以管理的仓库
  1. 创建一个目录  mkdir learngit
  2. cd 到该目录 cd learngit   运行git init 
git add告诉Git,把文件添加到仓库--git add 是吧修改的文件 添加到缓存里
git add readme.txt

git commit -m "wrote a readme file"提交修改 -m是添加commit说明 可选项
git status - 命令可以让我们时刻掌握仓库当前的状态, 有没有文件改变
git diff - 顾名思义就是查看difference,显示的格式正是Unix通用的diff格式
git log  命令显示从最近到最远的提交日志  ctrl+c 退出显示log界面
git reset --hard HEAD^  恢复到上一个版本
git reset --hard HEAD^^ 恢复到上上一个版本
git reset --hard HEAD~100  恢复到以前指定数目一个版本
git reflog   用来记录你的每一次命令可以找到 commit id号  ctrl+c 退出显示log界面
git reset --hard 3628164  恢复到指定commit版本 版本号可通过git reflog查询
git diff HEAD -- readme.txt  查看工作区和版本库里面最新版本的区别
撤销修改
git checkout -- readme.txt   readme.txt 文件回到最近一次git commitgit add时的状态, 如果没有--,就变成了“创建且个it切换到另一个分支”的命令
1)readme.txt 自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状 态; 
2)readme.txt 已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的 状态

git reset HEAD readme.txt  用命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区

删除文件
git rm test.txt 然后 git commit -m "remove test.txt" 从库里删除一个文件
git checkout -- test.txt 把误删的文件恢复到最新版本
git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

分支管理
git checkout -b dev 创建且切换分支  参数-b 表示创建并切换
  1. git branch dev 
  2. git checkout dev 
git branch  查看所有分支
git merge dev   合并指定分支到当前分支
git branch -d dev 删除分支
git log --graph     查看分支合并图
小结 
Git 鼓励大量使用分支: 
查看分支:git branch 
创建分支:git branch <name> 
切换分支:git checkout <name> 
创建+切换分支:git checkout -b <name> 
合并某分支到当前分支:git merge <name> 
删除分支:git branch -d <name> 
 
决冲突 
merge 如果发生冲突 需手动修改重复,重复提交
Git 用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,我们修改如下后保存: 


分支管理策略
git merge --no-ff -m "merge with no-ff" dev 禁用 Fast forward 模式
git log --graph --pretty=oneline --abbrev-commit   查看分支的合并情况: 
分支策略
master 分支应该是非常稳定,不能在上面干活
干活都在 dev 分支,发布时,再把 dev 分支合并到 master 上,在 master 分支发布 1.0 版本

git stash       以把当前工作现场“储藏”起来
git stash list   查看所有stash的信息
git stash apply       恢复stash 但内容不删除
git stash apply stash@{0}     恢复指定的 stash
git stash drop    恢复stash 且删除内容

远程操控
git remote   远程库的信息    远程仓库的默认名称是 origin
git remote -v   显示更详细的信息
git push origin dev   把该分支推送到远程库对应的远程分支
git   pull    origin first 拽取远程分支
多人协作的工作模式通常是这样: 
 首先,可以试图用 git push origin branch-name 推送自己的修改; 
 如果推送失败,则因为远程分支比你的本地更新,需要先用 git pull 试图合并; 
 如果合并有冲突,则解决冲突,并在本地提交; 
 没有冲突或者解决掉冲突后,再用 git push origin branch-name 推送就能成功! 
 git pull 提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建, 用命令 git branch --set-upstream branch-name origin/branch-name。 
小结
 查看远程库信息,使用 git remote -v; 
 本地新建的分支如果不推送到远程,对其他人就是不可见的; 
 从本地推送分支,使用 git push origin branch-name,如果推送失败,先用 git pull 抓 取远程的新提交; 
 在本地创建和远程分支对应的分支,使用 git checkout -b branch-name origin/branch-n ame,本地和远程分支的名称最好一致; 
 建立本地分支和远程分支的关联,使用 git branch --set-upstream branch-name origin/ branch-name; 
 从远程抓取分支,使用 git pull,如果有冲突,要先处理冲突。 

标签管理 
git tag v1.0  分支打个标签    默认标签是打在最新提交的 commit 上
git tag       查看标签
git tag v0.9   6224937  对制定的commit id 打标签
git tag -a v0.1 -m "version 0.1 released" 3628164  打标签加说明文字
git tag -s v0.2 -m "signed version 0.2 released" fec145a   通过-s 用私钥签名加
git show <tagname>   查看标签信息: 
小结 
 命令 git tag <name>用于新建一个标签,默认为 HEAD,也可以指定一个 commit id; 
 git tag -a <tagname> -m "blablabla..."可以指定标签信息; 
 git tag -s <tagname> -m "blablabla..."可以用 PGP 签名标签; 
 命令 git tag 可以查看所有标签。

标签操作 
git tag -d v0.1    删除
git push origin v1.0    推送某个标签到远程
git push origin --tags    推送全部尚未推送到远程的本地标签
删除远程标
1)git tag -d v0.9  先删除本地
2)git push origin :refs/tags/v0.9  推送本地删除
小结 
 命令 git push origin <tagname>可以推送一个本地标签; 
 命令 git push origin --tags 可以推送全部未推送过的本地标签; 
 命令 git tag -d <tagname>可以删除一个本地标签; 
 命令 git push origin :refs/tags/<tagname>可以删除一个远程标签。 

git config --global color.ui true     让 Git 显示颜色
git config --global alias.st status   给status 配置别名
git config --global alias.unstage 'reset HEAD'  配置别名例子2






原文地址:https://www.cnblogs.com/jjyyddss/p/8284142.html