1

git的使用流程

git 码云 仓库通信说明

1.首先 在码云仓库中新建自己的仓库,设置相关的配置
2.执行 git clone url(远程仓库地址) 将远程仓库下载到本地。进入项目目录,目录下有.git文件,在这个目录下写自己的项目文件。
3.如果你已经在本地使用了git管理了你的项目,现在需要将本地的项目上传到码云仓库。
你同样需要在码云上新建项目,将项目清空即可。然后在本地添加远程仓库地址,就可以将已经存在的git项目推到码云上了,注意步骤,否则是推送到远程仓库
4.关于密码权限问题
你需要使用码云上的 SSH 链接,不要使用 https 链接,然后按照链接步骤
码云密钥配置
配置多个ssh key

git的安装

在git官网上下载 git 安装文件,下载所需版本,一路点击下一步即可,也可以自行设置选项。
安装完成以后。双击 Git Bash 打开命令面板。
执行 git version 查看版本号,能正常运行并输出版本号,说明 git 安装成功。
如果在 cmd 中无法启用 git 命令,需要配置环境变量。配置的过程如下:
在我的电脑中右击,
选择属性选项 ->高级系统设置 -> 高级选项卡 -> 点击环境变量按钮 ->
在系统变量中找到 Path 双击将 git 的安装目录复制进去即可.
这样就能在 cmd 中启用 git 指令了,如有疑问自己百度一下配置好即可。
 1. 生成公钥:ssh-keygen -t rsa -C your e-mail
 2. 查看公钥: cat ~/.ssh/id_rsa.pub
 

git 指令的使用

使用前先了解一下 dos 和 linux 的简单命令( 可以先略过 )

cd 命令
cd .. 返回上一级目录
cd d: 进入 d 盘(指定的盘符)
cd / 返回根目录
cd <folderName> 进入指定的目录

ls命令
ls 列出当前目录下所有的文件( 不含隐藏文件 )
ls -lat 列出隐藏文件目录详细信息
ls -a 列出目录下所有的目录和文件

mkdir 命令
mkdir <dirname> 创建新目录(在当前目录下)

touch 命令
touch <fileName> 创建新文件

cat 命令
cat <fileName> 显示这个文件

vi 命令
vi <fileName> 编辑文件
在英文状态下输入 i,进入插入模式
编辑文本后,按 esc 键退出编辑
按 :wq 保存并退出,回到命令面板,:q!退出

git 查看文件状态

 1.git status : 查看当前状态,看提示的颜色和标志,区分文件需要的操作、待 push 的 commit
 2.git status -s : git status 简化 注意前面的字母标志,分为2列,
   第一列是对staging区域而言,第二列是对working目录而言。同时注意字母的颜色,区分当前文件的状态。

git 跟踪文件

 1.git add : 将文件添加到暂存区,非常重要的一个操作,这样就可以实时的对你的文件进行跟踪了。
 2.git add filename : 将filename文件添加到暂存区
 3.git add . : 将所有文件添加到暂存区
 4.git add -A : 添加所有改动文件到暂存区( 不常用 )
 5.git add -u : 添加有改动且已追踪的文件( 不常用 )
 6.git clean 
     -n 并不删除操作,只显示将被清理的文件列表
     -f 删除文件,但不会动.gitignore里标记的
     -d 删除目录,但不会动.gitignore里标记的
     -X 仅删除.gitignore里标记的文件
     -df 删除未跟踪的文件和文件夹

git 文件比较

相关链接

 1. git diff: 比较文件,默认是工作区和暂存区文件比较,不加参数是所有文件
 2. git diff --cached: 暂存区和本地仓库比较
 3. git diff head: 工作区和本地仓库比较
 4. git diff filename : 工作区和暂存区 filename 文件的对比,可以加路径。
 5. git diff branchName filename : 比较当前分支和 branchName 分支的 filename 的文件
 6. git diff romoteName/branchName filename : 比较远程主机 romoteName 的 branchName 分支的filename文件比较。
 即当前分支的某个文件和远程主机的某个分支的代码比较。
 注意:如果不传filename,比较所有文件,传filename时注意文件路径。
  在执行add操作是,为了安全先执行diff命令。在 git diff 中存在状态字
  第一列 M 表示:版本库和处理中间状态有差异( 版本库与暂存区有差异 )
  第二列 M 表示:工作区和暂存区文件有差异( 当前文件指 )
    A: 你本地新增的文件(服务器上没有)
    C: 文件的一个新拷贝
    D: 你本地删除的文件(服务器上还在)
    R: 文件名被修改了
    T: 文件的类型被修改了
    U: 文件没有被合并(你需要完成合并才能进行提交)
    X: 未知状态(很可能是遇到git的bug了,你可以向git提交bug report)

    详情请查阅相关资料,不过意义不大,用一段时间就知道了。
  7.git diff dev master -- filename: 比对当前 dev 与 master 两个分支代码的差异

git 查看日志

 1.git log : 列出提交的详细信息
 2.git shortlog : git log 简化
 3.git log -p : 查看历次的 log 信息及更改情况
 4.git log -p -number : 查看距现在最近的 number 次的 提交的信息及更改情况
 5.git log --stat -number : 查看log显示文件修改情况
 6.git log --pretty=oneline : 查看提交的版本 ID
 7.git reflog : 查看所有的操作信息。
 8.git log --author="author": 查看 author 提交的记录
 9.git log --oneline --graph:查看分支图
 
 git log --stat -number 
 很有用的一个命令,可以迅速查找到你上次提交的具体的文件信息,只是展示那些文件被修改过。

git 提交

 1.git commit -m note: 提交到本地仓库
 2.git commit filename -m note: 提交指定文件,可以是文件目录,多文件用空格隔开
 3.git commit --amend -m note: 合并提交
 4.git commit -a -m note: 添加到暂存区并提交到本地仓库(不建议使用)
 5. git commit -s(--signoff) -m note: 标记提交的节点,记录提交人

git 回退

 1.git checkout .(<fileanme>|/dirname) : 撤销修改,不建议使用,会造成修改的文件无法找回。(从工作区撤回)
 2.git reset HEAD <filename> : 从暂存区撤销指定文件
 3.git reset : 从暂存区撤销所有未提交的文件
 
 4.git reset --hard HEAD : 硬回退到最后一次提交(硬)
 5.git reset --hard HEAD^ : 最后一次提交的前一个提交(硬)
 6.git reset --hard HEAD~number : 回退到前 number 版本(硬)
 
 7.git reset --hard versionNumber : 回到指定的版本,通过 versionNumber 版本号(硬)
 8.git reset --hard master@{num} : 回到指定的版本
    --hard : 直接回退到工作区
    --soft : 从仓库恢复,本次修改的内容依然存在,只是处于未提交状态
 
 9.git revert commitid: 回滚到指定的 提交( 作为一次提交 )
 10.git revert --abort: 放弃回滚
 11.git revert --skip: 跳过冲突
 12.git revert --continue: 继续操作

git 分支

    说道分支, 在git使用过程中,都是相对于当前分支。所以在查看git文档时要深刻理解你当前处在
哪个分支,想在当前分支上做哪些操作。 这一点对于git的使用至关重要,几乎所有的指令都直接和间接与分支关联。
1.git branch branchName : 创建一个名为 branchName 的分支
2.git checkout branchName : 从当前分支切换到 branchName 分支
3.git checkout -b branchName : 创建并切换分支
4.git checkout -b branchName remoteName/branchName 创建一个干净的分支(以远程分支为基础,创建新的本地分支,如果clone后,需要切换到某个分支,而本地并没有这个分支。可以使用该命令)

5.git branch -d branchName : 删除分支,未合并分支不能被删除,使用 -D 强制删除分支
6.git branch : 列出本地分支
7.git branch -a/-r : 列出所有分支 ( 远程分支 + 本地分支 )
8.git branch -v : 查看分支的最后修改(分支最后一次提交的版本信息)
9.git branch -l : 列出所有的本地分支
10.git reflog show branchName : 列出指定分支的版本记录列表
11.git reflog show --date=iso branchName :  查看分支创建的时间

12.git merge branchName : 将指定的 branchName 分支合并到当前分支。
13.git push origin --delete [branchname]: 删除远程分支
14.git checkout -b branchName commitId: 以某次提交创建新的分支
15.git branch -m oldBranchName newBranchName: 更换分支名称
16.git remote update origin --prune: 同步线上分支代码
17.git checkout --orphan branchName: 新建纯净分支

git 合并

1.git merge dev: 将 dev 分支 合并到 当前分支
2.git merge origin/dev: 将 远程主机 origin 的 dev 分支 合并到 当前 分支
3.git pull origin: 拉取远程仓库代码 并 自动合并代码
4.git fetch origin: 拉取远程仓库代码,需要手动合并

5.git reset --hard origin/branchName: 当前分支代码 与  branchName 代码同步
6.git reset --hard HEAD@{1}: 恢复当前分支代码 ( 查看操作 详情 git reflog, 确认恢复到的位置 )
7.git reset --hard commitid: 恢复代码到指定的 commitid

8.git cherry-pick commitid: 将 dev 分支的 commitid 的提交合并到当前分支
9.git checkout dev -- filename : 将 dev 分支的 filename 检出到 当前分支

git 上传

1.git push: 将代码 推送到默认主机, 并将当前分支 推送到远程仓库
2.git push origin dev: 将本地代码推送到 dev 分支
3.git push -f origin master: 强制将本地代码 覆盖 远程 master 分支代码
4.git push origin --delete dev: 删除 远程 仓库 origin 主机的 dev 分支
5.git push -u origin master: 推送分支 并将 origin 作为主机

git 打标签

tags版本比较

git tag versionNum: 打上版本号(轻标签, 不含有注释备注等信息的标签)
git tag -a versionNum -m '描述信息': 创建带有备注的标签
git tag -a versionNum(labelName) commitID: 给指定的 commitId 打标签
------------------------------------------------------------------
git tag -d versionNum: 删除标签
git push origin --delete tag <tagname>: 删除远程分支的tag
------------------------------------------------------------------
git tag: 查看当前分支下的标签
git show versionNum: 显示版本详情
git tag -l 'v0.1.*': 搜索符合模式的标签 -l(list)
------------------------------------------------------------------
git push --tags: 上传当前分支下的所有标签
git push branchName tagsName: 将 tagsName 推送到 branchName 分支
git diff tag1 tag2 -- filename: 比较两文件的差异
------------------------------------------------------------------
git checkout versionNum: 与切换分支一样,直接指定版本号

git 远程仓库

1.git remote: 查看所有的主机名
2.git remote -v:查看所有的远程仓库地址( name + url )
3.git remote show <remote>: 查看指定远程版本库信息
4.git remote add <remoteName> <url>: 添加远程版本库(添加一个远程的仓库,在指定的 url 上) 
5.git fetch <remoteName>

// 修改远程仓库地址
1.git remote set-url origin url
2.git remote rm origin: 删除远程仓库      
3.git remote add origin url: 添加远程仓库
4.直接修改 config 文件

git 中断 stash

1.git stash: 中断,保持现场。(用编号标记不同的中断)
2.git stash pop: 取出中断,恢复最后一次中断时的现场。
3.git stash list: 查看所有的中断信息
4.git stash apply stash@{1}: 取出指定的中断
5.git stash clear: 清除所有中断

    举一个例子,比如你在dev分支正在开发一个功能,这时master分支有一个亟待解决的bug。
此时dev分支的功能并没有开发完,现在并不想执行 commit,提交。这时你执行 git stash,中断。
然后切换到mater分支上修复bug,修复完成后切换到 dev 分支,
然后将中断取出,执行git stash pop 就可以继续你的开发工作了。

git 删除

1.rm -rf filename/dir: 删除指定文件或文件夹
2.git rm -r --cached mini/.tea/: 缓存区文件, 使其处于未追踪

git 其他

2.git cherry -v: 查看未提交的 commit 
3.git log master ^origin/master: 查看未提交的 commit

// 查看配置信息
4.git config --system --unset credential.helper:清系统数据
5.git config --list 查看所有的配置信息
6.git config --system --list: 查看系统配置信息
7.git config --global --list: 查看全局配置项信息
8.git config --local --list: 查看本地配置信息

9.git config --global --edit: 编辑配置文件
10.git config --global credential.helper store:设置保存密码

11.git checkout branch -- filename 检出某一分支的文件到当前分支

12. user config: vi ~/.gitconfig ( 在系统用户目录下 )
 [user]
    name = ***
    email = 634874196@qq.com
 [alias] 
    co = checkout
    ss = status
    ct = commit
    cmt = commit -m
    ctm = commit -m
    br = branch
    di = diff
    dic = diff --cached
    pl = pull
    ph = push
    ps = push
    logs = log --stat
    logp = log -p
    
   window10清除凭证信息:控制面板\所有控制面板项\凭据管理器


心语花束
169 声望0 粉丝

web前端开发