Git使用

Git使用及代码仓库介绍


Git是一个很强大的代码版本管理工具,在Git的使用过程中,不断学习积累Git的命令行及其作用,在本篇文章中记录了笔者使用过程的积累,以后还会持续更新。代码仓库分为分为工作区 暂存区 本地仓库 远程仓库 四个区,主要工作流程为暂存,拉取,恢复暂存,合并(如果有冲突),提交,推送

1.初始化Git

git init

2.创建忽略文件

touch .gitignore(这里面可以写一些忽略文件,git add/commit/push的时候不会上传忽略文件,可以参照其它项目)

3.把远程repository加到本地

git remote add origin 远程地址

4.将工作区代码提交到本地暂存区

git add --all
git add .

5.配置用户名邮箱

git config user.name "JerryMouseLi"
git config user.email "j213@137.com"

查看用户名以及邮件

+ 查看当前登录账号:

git config user.name

+ 查看当前登录邮箱:

git config user.email

6.提交暂存区代码到本地代码仓库

git commit -m "提交备注"

7.从远程仓库拉取代码到本地仓库

git pull origin master
pull包含了fetch跟merge将本地仓库的变化与远程仓库变化,同名文件合并。这里有冲突需要解决冲突。

8.提交本地仓库代码到远程仓库

git push origin master

9.硬恢复到指定提交版本

git reset --hard commit_id

9.1 本地仓库强制覆盖远程仓库

`
git push origin master --force

`

10.导出提交修改日志

git log --pretty=format:"%ai , %an: %s" --since=“100 day ago” >> ~/Desktop/commit.log

git log --pretty=format:"%ai , %an: %s" >> ~/Desktop/Readme.log

最终采用
git log  --date=format:'%Y-%m-%d %H:%M:%S' --pretty=format:"%ad , %an: %s" >> ~/Desktop/Readme.log 
选项   说明
%H    提交对象(commit)的完整哈希字串
%h    提交对象的简短哈希字串
%T    树对象(tree)的完整哈希字串
%t    树对象的简短哈希字串
%P    父对象(parent)的完整哈希字串
%p    父对象的简短哈希字串
%an    作者(author)的名字
%ae    作者的电子邮件地址
%ad    作者修订日期(可以用 -date= 选项定制格式)
%ar    作者修订日期,按多久以前的方式显示
%cn    提交者(committer)的名字
%ce    提交者的电子邮件地址
%cd    提交日期
%cr    提交日期,按多久以前的方式显示
%s    提交说明

11.查看本地分支与远程分支

git branch -a 查看所有分支

git branch -r查看远程分支

git branch  查看分支

12.下载远程分支

git clone -b CQDemo https://git.dev.tencent.com/xxx/xxx.git

13.找回暂存区里丢失的代码

git fsck --lost-found //找回git add过但是已经不存在文件中的内容

14 修改最近一次commit的注释

git commit --amend
commit提供了一个--amend参数,可以修改最后一次提交的信息.但是如果你已经push过了,那么其历史最后一次,永远也不能修改了。

15.修改作者名称

主要我用来导出git日志的时候用
git commit --amend --author "xw aa.hbl@gmail.com"

// 设置全局
git config --global user.name "Author Name"
git config --global user.email "Author Email"

// 或者设置本地项目库配置
git config user.name "Author Name"
git config user.email "Author Email"

16. git tag的用法

我们常常在代码封板时,使用git 创建一个tag ,这样一个不可修改的历史代码版本就像被我们封存起来一样,不论是运维发布拉取,或者以后的代码版本管理,都是十分方便的

16.1.git的tag功能

git 下打标签其实有2种情况

  • 轻量级的:它其实是一个独立的分支,或者说是一个不可变的分支.指向特定提交对象的引用
  • 带附注的:实际上是存储在仓库中的一个独立对象,它有自身的校验和信息,包含着标签的名字,标签说明,标签本身也允许使用 GNU Privacy Guard (GPG) 来签署或验证,电子邮件地址和日期,一般我们都建议使用含附注型的标签,以便保留相关信息
    所以我们推荐使用第二种标签形式

16.2.创建tag

git tag -a V1.2 -m 'release 1.2'

上面的命令我们成功创建了本地一个版本 V1.2 ,并且添加了附注信息 'release 1.2'

16.3.查看tag

git tag

要显示附注信息,我们需要用 show 指令来查看

git show V1.2

但是目前这个标签仅仅是提交到了本地git仓库.如何同步到远程代码库

git push origin --tags

如果刚刚同步上去,你缺发现一个致命bug ,需要重新打版本,现在还为时不晚.

git tag -d V1.2

到这一步我们只是删除了本地 V1.2的版本,可是线上V1.2的版本还是存在,如何办?这时我们可以推送的空的同名版本到线下,达到删除线上版本的目标:

git push origin :refs/tags/V1.2

如何获取远程版本?

git fetch origin tag V1.2

这样我们可以精准拉取指定的某一个版本.适用于运维同学部署指定版本.

17.git checkout -- file 可以丢弃工作区的修改

git checkout -- readme.txt

18. git清除本地用户名密码

git config --system --unset credential.helper

19.把当前提交到git本地仓库的代码推送到远程主机origin的Development分支上

git push origin Development

20. git remote: HTTP Basic: Access denied 错误解决办法

问题描述:
git push 报 HTTP Basic: Access denied 错误

原因:本地git配置的用户名、密码与gitlabs上注册的用户名、密码不一致。

解决方案:

  1. 如果账号密码有变动 用这个命令 git config –system –unset credential.helper 重新输入账号密码 应该就能解决了
  2. 如果用了第一个命令 还不能解决问题那么 用这个命令:
    git config –global http.emptyAuth true
    3.如果以上两个方法不起作用,那么采用以下方法:

进入控制面板》用户账号》凭据管理器?windows凭据》普通凭据,在里面找到git,点开编辑密码,更新为最新密码之后就可以正常操作了。

21. 设置本地ssh文件

ssh-keygen -t rsa -C "13737732703@163.com"

拷贝*.pub文件ssh-rsa开头
ssh方式连接远端git服务

ssh -T git@github.com

注意必须在~/.ssh文件夹下操作

22. 创建远程仓库

git checkout -b "远程仓库名"
posted @ 2019-06-16 11:32  JerryMouseLi  阅读(767)  评论(0编辑  收藏  举报