git 安装  https://git-scm.com/downloads
 
 
 
git pull 如果是空项目 提交到 码云 或者 github 中时要在  +加号里新建仓库  新建一个仓库

 

 只填写项目名称(其他的不要动) 红色框里的保持不动 

出现下图中的表示创建的是一个空的项目

 

推荐使用SSH地址 

上述完成后 复制粘贴 Git全局设置中的两行代码在终端中运行
创建自己的空仓储运行下边代码来全局配置提交时用户的名称和邮箱
git config --global user.name "用户名"
git config --global user.email ***@**.com
 
 
git init   // 在本地初始化项目 初始化好以后会在当前项目中有一个隐藏的 .git文件夹
git status  // 查看开发的状态  红色表示还没有被git所管理  绿色表示还没有真正的提交到git仓储中  出现 [On branch master(表示处于主分支) nothing to commit,working tree clean(无需承诺,工作树干净)]
git add . //  把没有被git托管的文件托管到git中
git commit -m "提交的消息"  // 提交到本地存储中
git remote add origin 仓储地址  // 将本地项目和远程仓储连接,并使用origin最为远程仓储的别名
点击回车如果没有输入过账号密码 下一步会是让你输入账号和密码
git push -u origin master // 将本地代码push到仓储中
1. git checkout -b 分支名称 在当前的分支上使用-b新创建一个子分支,并立即使用checkout 切换到自分支
2. git branch 分支名称 是单纯的创建一个子分支
3. git checkout 分支名称 切换分支
4. 在 master 分支上,运行 git merge 子分支名称 , 就表示说,把 子分支上所有功能代码,合并到主分支;
5. git status 查看状态
6. git add . 添加到暂存区
7. git commit -m '消息' 提交到本地存储中
git clone  URL  //  git拉取远程代码  URL 就是SSH或者HTTP
 
 git remote update origin --prune  //  更新分支
git pull //把远程库的代码更新到工作台
git pull --rebase origin master //强制把远程库的代码跟新到当前分支上面
git fetch //把远程库的代码更新到本地库
git commit -m 'comments here' //把stage中的修改提交到本地库
git push //把本地库的修改提交到远程库中
git branch -r/-a //查看远程分支/全部分支
git checkout master/branch //切换到某个分支
git checkout -b test //新建test分支
git checkout -d test //删除test分支
git merge master //假设当前在test分支上面,把master分支上的修改同步到test分支上
git merge tool //调用merge工具
git stash //把未完成的修改缓存到栈容器中
git stash list //查看所有的缓存
git stash pop //恢复本地分支到缓存状态
git blame someFile //查看某个文件的每一行的修改记录()谁在什么时候修改的)
git status //查看当前分支有哪些修改
git log //查看当前分支上面的日志信息
git diff //查看当前没有add的内容
git diff --cache //查看已经add但是没有commit的内容
git diff HEAD //上面两个内容的合并
git reset --hard HEAD //撤销本地修改
echo $HOME //查看
git config的HOME路径
export $HOME=/c/gitconfig //配置git config的HOME路径
 
秘钥所在位置 C盘-->用户-->Administator-->.shh文件-->id_rsa.pub文件这个就是公钥
公钥配置位置
 
码云中的位置: 头像 设置-->安全中的SSH公钥
github中的位置: 头像 设置-->SSH和GPG秘钥
 
 
 
 
 git撤销,放弃本地修改, 放弃一提交的修改

一,

未使用 git add 缓存代码时。

可以使用 git checkout -- filepathname (比如: git checkout -- readme.md ,不要忘记中间的 “--” ,不写就成了检出分支了!!)。放弃所有的文件修改可以使用 git checkout . 命令。

此命令用来放弃掉所有还没有加入到缓存区(就是 git add 命令)的修改:内容修改与整个文件删除。但是此命令不会删除掉刚新建的文件。因为刚新建的文件还没已有加入到 git 的管理系统中。所以对于git是未知的。自己手动删除就好了。

二,

已经使用了 git add 缓存了代码。

可以使用 git reset HEAD filepathname (比如: git reset HEAD readme.md)来放弃指定文件的缓存,放弃所以的缓存可以使用 git reset HEAD . 命令。

此命令用来清除 git 对于文件修改的缓存。相当于撤销 git add 命令所在的工作。在使用本命令后,本地的修改并不会消失,而是回到了如(一)所示的状态。继续用(一)中的操作,就可以放弃本地的修改。

三,

已经用 git commit 提交了代码。

可以使用 git reset --hard HEAD^ 来回退到上一次commit的状态。此命令可以用来回退到任意版本:git reset --hard commitid

 
 

打开git bash后,输入git --version ,能正确输出版本号,则证明安装成功。

基本命令

配置用户名和邮箱

git config --global [user.name](http://user.name) ‘自己的名字’
git config --global [user.name](http://user.name) ‘自己的邮箱’
  • local 只对当前仓库有效
  • global 所有仓库有效
  • system 对系统所有用户有效

查看配置

git config --list --local
git config --list --global
git config --list --system

清除配置

git config --unset --local [user.name](http://user.name)
git config --unset --global [user.name](http://user.name)
git config --unset --system [user.name](http://user.name)

创建仓库

进入要被托管的文件夹,执行

git init

添加文件至暂存区

git add 文件名

提交文件

git commit -m '描述'

查看git状态

git status

查看修改内容

git diff 文件名

修改文件名字

git mv 原文件名   新文件名

查看日志

功能为查看日志
git log

查看日志,以单行显示
git log --pretty=oneline

功能为查看历史操作记录,比如回退版本后想要重返“未来”可以查看最新的提交版本
git reflog

通过可视化工具查看提交信息

gitk

版本回退

退回到上一个版本
git reset --hard head

当知道对应的版本号时,可以用这个命令,适用于回退和前往之前的新版本
git reset --hard 版本号

撤销操作

新版本git提示用该命令进行撤销
git restore 文件名

旧版本用此命令做撤销,新版本也可以用
git checkout – 文件名

如果已经add进暂存区
git restore --staged 文件名

新版本git用该命令此为旧版本git命令,新版本也可以用  
git reset head 文件名

删除文件

git rm -f 文件名  

使用分支

查看当前分支

git branch

创建dev分支并切换过去

-b表示创建并切换,相当于下面两条命令
git checkout -b dev

创建分支
git branch dev

切换分支
git checkout dev

注意:上面是老版本的命令,创建分支和撤销都用checkout容易分不清,因此新版本创建分支推荐用

switch
创建并切换到dev
git switch -c dev

直接切换到已有的dev分支
git switch dev

合并分支

将dev分支合并到当前分支,合并后会丢失原来分支的信息
git merge dev

合并dev到当前分支,–no-ff表示禁用fast forwad,之后查看日志时是可以看到已被删除分支的信息
git merge --no-ff -m “merge with no-ff” dev

删除分支

git branch -d dev
git branh -D dev

如果dev没有被合并过用大写 -D

查看分支合并情况

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

stash的使用(bug分支)

保存当前的工作现场
git stash

查看所有被保存的工作
git stash list

恢复并删除工作现场,等价于git stash apply + git stash drop
git stash pop

开发环境在dev分支下,bug修复是提交在master中,如何快速合并至dev下:转移至dev分支下,执行下面命令

git cherry-pick bug分支的提交版本号

远程克隆到本地

git clone 自己的git项目地址

如果是本地没有项目,从远程往下拉项目则是克隆

关联

git remote add origin 自己的git项目地址

如果本地先建好了项目,那么执行这个命令将本地仓库与远程仓库关联

拉取远程的更新

git pull

第一和远程关联上之后,在提交之前要先pull一下远程的更新才行

基本推送

第一次推送是要加上-u,可以把本地的master和远程的master关联起来,方便以后的推送或者拉取
git push -u origin master

之后推送可以直接用该命令
git push origin master

查看远程仓库信息

git remote

此命令可显示更详细信息
git remote -v

多人协作

  • git checkout -b 分支名 origin/分支名,在本地创建和远程分支对应的分支,名称最好一致

  • git branch --set-upstream-to=origin/dev dev,建立本地分支和远程分支的关联

  • git pull,先抓取远程的更新,如果有冲突,手动解决冲突

  • git push origin 分支名,解决冲突后推送

标签

基本操作

标签的作用可以简单理解为给版本起名字

查看所有标签
git tag

把当前分支的最新提交打上标签,标签名字自己起
git tag 标签名

把某个版本号的提交打上标签
git tag 标签名 对应commit版本号

可以用这种方式给标签增加说明,-a对应标签名,-m对应描述信息
git tag -a v0.1 -m “描述信息” 版本号

查看标签具体信息
git show 标签名

删除标签
git tag -d 标签名

推送标签

推送某个标签到远程
git push origin 标签名

推送所有标签到远程
git push origin --tags

删除远程标签:
先删除本地标签
git tag -d 标签名
 
然后从远程删除
git push origin: refs/tags/标签名