Git常用命令总结
一、常用拉取提交代码
1、拉取代码
基本拉取:git clone [git地址]
拉取并保存账号:git clone https://账号:密码@gitee.com/robots2/test.git
2、本地修改代码后查看调整
git pull:获取当前分支最新代码
git pull origin master 合并master代码到本地分支
git fetch origin test:test 拉取远端test到本地test分支
git checkout test 切换本地分支
git checkout . 放弃本地修改内容,初始化
git checkout . && git clean -xdf 丢弃本地所有修改-df 删除的文件和目录
git rm -r --cached test.txt 本地还没提交的话删除这个文件,本地提交了可把这个文件从添加列表去除
git reset HEAD 文件名 添加暂存区后去除某个文件
3、分支操作
git checkout -b dev 在当前分支 创建并切换到另外一个分支
git branch -d "分支名称" 删除本地分支
git branch "分支名称" 创建一个新的分支
git branch -r -d origin/new_code_table 删除本地和远端分支
git merge test 合并test分支到当前分支
git branch 查看本地分支
git branch -a 可以查看所有本地+远程仓库分支
git push origin "本地分支:远程分支" 将本地分支推送至远程仓库
git push origin --delete 分支名称 删除远程分支
4、推送代码
git stash 暂存本地修改的代码
git stash list 查看本地暂存的列表
git pull origin master 拉取远端代码
git stash pop 恢复暂存的代码与本地合并
git push origin test 推送到远端test分支
git add . 添加本地修改的文件到暂存区
git commit -m "注释" 填写提交注释
git commit --amend 修改未push的上次提交注释
git push origin "本地分支名称:远程分支名称" 将本地分支推送至远程仓库
二、查看git常用信息
git reflog 查看提交记录
git log -3 查看当前分支最近3次提交记录
git log -p test.java 查看某个文件的修改
git diff 文件名 查看未提交的文件修改
git remote -v 查看远端别名
git log --graph 查看分支的提交记录
git log | grep "^Author: " | awk '{print $2}' | sort | uniq -c | sort -k1,1nr
查看之前提交的排行榜
git log --author="wangshida" --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 }' -
查看某人提交代码量
三、git配置信息调整
1、配置本地git账户
git config --global user.name "test"
git config --global user.email "test@163.com"
2、添加删除git地址别名
git remote add origin [git地址1]
git remote add private [git地址2]
git remote remove [origin删除别名]
3、保存git账号
3.1 拉取并保存本仓库账号:git clone https://账号:密码@gitee.com/robots2/test.git
注:该方式会把账号信息保存到 ~/.git-credentials
3.2 永久保存git账号密码
第一步:先clone代码到本地
第二步:git config --global credential.helper store
第三步:git config --local credential.helper store
注:该命令会全局地长期地存储在本地,即使重装git密码也存在。这里保存的账号和密码会自动应用到每一个git clone指令,
如果想要克隆的不是该账号下的项目,就只会得到403错误
恢复方式:rm ~/.git-credentials,删掉git config --global credential.helper store保存的账号和密码。
3.3 保存指定时间的账号密码
git config credential.helper 'cache –timeout=3600'
1、配置本地git账户
git config --global user.name "test"
git config --global user.email "test@163.com"
2、添加删除git地址别名
git remote add origin [git地址1]
git remote add private [git地址2]
git remote remove [origin删除别名]
3、保存git账号
3.1 拉取并保存本仓库账号:git clone https://账号:密码@gitee.com/robots2/test.git
注:该方式会把账号信息保存到 ~/.git-credentials
3.2 永久保存git账号密码
第一步:先clone代码到本地
第二步:git config --global credential.helper store
第三步:git config --local credential.helper store
注:该命令会全局地长期地存储在本地,即使重装git密码也存在。这里保存的账号和密码会自动应用到每一个git clone指令,
如果想要克隆的不是该账号下的项目,就只会得到403错误
恢复方式:rm ~/.git-credentials,删掉git config --global credential.helper store保存的账号和密码。
3.3 保存指定时间的账号密码
git config credential.helper 'cache –timeout=3600'
四、回滚操作
git reset --hard e377f60e28c8b84158 回滚到某个版本
git push -f origin test111 强制提交到远端某个分支
五、本地代码初始化到仓库
1、进入开发目录
cd /Users/Robots2/javaProject/test
git init
git config --global user.name "wangshida"
git config --global user.email "wangshida@baijia.com"
六、常用套装操作
1、创建git仓库后第一次上传到仓库
先在git网站创建项目
git init
git add .
git commit -m "Initial commit"
git remote add origin [git地址]
git remote -v 查看远端别名
git pull origin master 先拉取远端master
git push --force robots master 本地master替换远端master
2、git 本地误删文件,还未提交,恢复文件
rm log4j-all.log
git reset HEAD log4j-all.log
git checkout -- log4j-all.log
七、tag操作
1、删除本地和平台tag
git tag -d b_biapp-service_1.0.1.4_20210420
2、查找上次提交上线的commit
git log --oneline
3、删除远端tag
git push origin --delete tag v20190725_tag
4、本地分支打tag
git tag -a tag名称 7d22f7b5
5、非常规操作,合并分支代码到tag上
git checkout tag名称
git merge [分支名称]
6、推送tag到远端
git push origin [tag名称]
7、拉取远端tag
git fetch origin [tag名称]
八、扩展
git rebase meicai/currentbranch 合并本地commit内容为一个
git cherry-pick 2555c6e 其他分支的某次提交代码合到本分支上
git reset --hard e377f60e28c8b84158 回滚到某个版本
git push -f origin test111 强制提交到远端某个分支
五、本地代码初始化到仓库
1、进入开发目录
cd /Users/Robots2/javaProject/test
git init
git config --global user.name "wangshida"
git config --global user.email "wangshida@baijia.com"
六、常用套装操作
1、创建git仓库后第一次上传到仓库
先在git网站创建项目
git init
git add .
git commit -m "Initial commit"
git remote add origin [git地址]
git remote -v 查看远端别名
git pull origin master 先拉取远端master
git push --force robots master 本地master替换远端master
2、git 本地误删文件,还未提交,恢复文件
rm log4j-all.log
git reset HEAD log4j-all.log
git checkout -- log4j-all.log
七、tag操作
1、删除本地和平台tag
git tag -d b_biapp-service_1.0.1.4_20210420
2、查找上次提交上线的commit
git log --oneline
3、删除远端tag
git push origin --delete tag v20190725_tag
4、本地分支打tag
git tag -a tag名称 7d22f7b5
5、非常规操作,合并分支代码到tag上
git checkout tag名称
git merge [分支名称]
6、推送tag到远端
git push origin [tag名称]
7、拉取远端tag
git fetch origin [tag名称]
八、扩展
git rebase meicai/currentbranch 合并本地commit内容为一个
git cherry-pick 2555c6e 其他分支的某次提交代码合到本分支上
九、.gitignore 免提交配置
新建该文件,内容如下
新建该文件,内容如下
.idea/
*.iml
target/
.DS_Store
.classpath
.project
.settings/
*.log
dependency-reduced-pom.xml
.gitignore
十、git重要概念
1、关于git中HEAD指针的问题
git中存在一个HEAD指针,即为每次提交一次HEAD指针就会向前进一位,这里要说明的是HEAD指针存在于暂存区和提交区,而不存在于工作区。也就是说在上一版的基础上,如果我们使用git add命令,那么此时HEAD指针会进入到暂存区,继续用git commit,此时会进入到提交区。
2、关于git reset的原理说明
git reset的原理简单来说就是把HEAD指针回退一位。即如果你在提交区,那么你回退一位就是暂存区,如果你在暂存区,那么指针会回退到上一次的提交区。
3、git reset的三种使用方法
git reset --soft
git reset --mixed
git reset --hard
其中soft就是reset中最原始的用法,只是将HEAD指针移动到上一次。而mixed则对其又进了一步,除了将HEAD指针移动到上一次的提交,还将暂存区的内容也一并清空。hard命令则对其又进了一步,除了HEAD指针移动到上一次的提交和将暂存区的内容也一并清空外,还将工作区的内容也一并清空。即:
soft:移动指针
mixed:移动指针+清空暂存区
hard:移动指针+清空暂存区+清空工作区。