git的使用(从配置到常用命令)

目录

一、git配置用户名和邮箱(一次)

 二、git配置ssh生成密钥对(一次)

三、添加公钥到你的远程仓库github(一次)

四、拷贝git仓库到本地

五、git使用

 5.1 远程信息同步至本地(如更新后的分支列表)

5.2 远程某分支同步至当前分支

5.3 放弃本地所有修改

5.4 git查看代码量

5.5 git使用某一分支完全覆盖另一分支

5.6 回滚

5.7 git commit 退出

六、软件的使用

6.1 idea合并某个分支的某次提交

6.2 将多次Commit合并成一


自己实际使用中常用的git功能备忘

一、git配置用户名和邮箱(一次)

配置命令:

git config --global user.name "用户名"
git config --global user.email "邮箱"

查看命令:

查看用户名git config --global user.name
查看密码 git config --global user.password
查看邮箱git config --global user.email
查看git版本git --version
查看配置信息git config --list
修改用户名git config --global user.name "新的用户名"
修改密码git config --global user.password "新的密码"
修改邮箱git config --global user.email "新的邮箱"

用户名过多时:
git config --global --replace-all user.name "用户名"
git config --global --replace-all uesr.email "邮箱"

最后输入下方命令保存,供以后的git程序使用

git config --global credential.helper store

 二、git配置ssh生成密钥对(一次)

首先,新建一个文件夹做自己的代码仓库。

git在文件夹内右键,点击git bash here 

SSH 公钥默认储存在账户的主目录下的 ~/.ssh 目录。进去看看有没有id_rsa和id_rsa.pub,有 .pub 后缀的文件就是公钥,另一个文件则是密钥。

cd ~/.ssh
ls

假如没有这些文件,甚至连 .ssh 目录都没有,可以用 ssh-keygen 来创建,命令如下:

ssh-keygen -t rsa -C "你的邮箱"

Enter same passphrase again: [Type passphrase again]提示你输入密码

也可以不输密码,一直回车。

直至显示:Your public key has been saved in ****/.ssh/id_rsa.pub. The key fingerprint is: 本地的密钥对就生成了。

三、添加公钥到你的远程仓库github(一次)

查看生成的公钥:

cat ~/.ssh/id_rsa.pub

复制生成的公钥

登录github账户-》点击头像-》setting-》ssh key

四、拷贝git仓库到本地

进入git网址,找到自己想下载的代码,复制ssh

 回到git bash

git clone 刚刚复制的地址

五、git使用

 5.1 远程信息同步至本地(如更新后的分支列表)

git pull

5.2 远程某分支同步至当前分支

git pull origin 某分支名称

5.3 放弃本地所有修改

1.没有执行 git add的:
git checkout – filepathname
放弃所有
git checkout .

2.已经执行git add缓存了的:
git reset HEAD filepathname
放弃所有
git reset HEAD .

3.已经用 git commit 提交了的:
可以用命令回退到上一次commit的状态
git reset --hard HEAD^
可以用命令回退到任意版本:
git reset --hard commitid

放弃本地修改,强制和远程同步
在使用Git的过程中,有些时候我们只想要git服务器中的最新版本的项目,对于本地的项目中修改不做任何理会,就需要用到Git pull的强制覆盖,具体代码如下:
git fetch --all
git reset --hard origin/master 
git pull

5.4 git查看代码量

在项目目录下,右键-》git bash here

1、统计这个仓库内 所有代码行数
git log --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }'

2、统计这个仓库内 每个人的增删行数
git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done

3、 统计个人代码量
git log --author="username" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -

4、统计某个人 在某段时间内的代码量
git log --author=username --since=2023-01-01 --until=2023-12-31 --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --numstat | grep "\(.html\|.java\|.xml\|.properties\)$" | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done

5.5 git使用某一分支完全覆盖另一分支

比如说使用master分支覆盖dev分支

1、切换到dev分支

git checkout dev

2、设置本地分支代码的远程为master分支

git reset --hard origin/master

3、本地代码已覆盖,强制推送本地分支到远程即可

git push -f

这样就实现了将master分支的代码覆盖到dev分支上

5.6 回滚

步骤:
git log --pretty=oneline//查commit-id
在英文状态下按“q”,就可以退出git log状态。
git checkout 回退的commit-id//回退至指定分支
或git revert HEAD~n..HEAD//回退n次
git push -f origin <branch_name> //强制推送

5.7 git commit 退出

保存并退出
    1、 按 Esc 键退出编辑模式,英文模式下输入 :wq ,然后回车(write and quit)。
    2、按 Esc 键退出编辑模式,大写英文模式下输入 ZZ ,然后回车。

不保存并退出
   1、按 Esc 键退出编辑模式,英文模式下输入 :q! ,然后回车

六、软件的使用

6.1 idea合并某个分支的某次提交

在分支1进行提交,想在分支2只拿到这个提交

idea下方version control->log->当前分支置为分支2-》查询分支置为分支1-》具体想拿来的记录右键-》cherry-pick

或者git方式

git cherry-pick 记录id
git push

6.2 将多次Commit合并成一个

先选中最早的那条记录,右击选择Interactivity Rebase from Here...

把除了第一条记录的Action改成squash,点击Start Rebasing

pick:保留该commit(缩写:p)
reword:保留该commit,但我需要修改该commit的注释(缩写:r)
edit:保留该commit, 但我要停下来修改该提交(不仅仅修改注释)(缩写:e)
squash:将该commit和前一个commit合并(缩写:s)
fixup:将该commit和前一个commit合并,但我不要保留该提交的注释信息(缩写:f)
exec:执行shell命令(缩写:x)
drop:我要丢弃该commit(缩写:d)

 修改提交的日志,点击Continue Rebasing

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值