git 常用命令记录 -- 快捷&备忘

1.安装 略
2.git拉取远程分支
git config user.name
git config user.email
git config --global user.name xxxx
git config --global user.email xxxx.com
git config -l

配置多个key
ssh-keygen -t rsa -C "xxxx.com" xxxx.com
ssh-keygen -t rsa -C "xxxx.com" -f C:/Users/xxxxxxxx/.ssh/github_rsa
配置config
多个账号配置
# 配置github.com
Host github.com
HostName github.com
IdentityFile C:\\Users\\xxxxxxxx\\.ssh\\github_rsa
PreferredAuthentications publickey

# 配置gitlab.com
Host gitlab.com
HostName gitlab.com
IdentityFile C:\\Users\\xxxxxxxx\\.ssh\\id_rsa.pub
PreferredAuthentications publickey

0.1 git init
0.2 git remote add origin 分支地址
git clone https://github.com/git/git
0.3 某分支拉到本地
git fetch origin xxxxxxxx

git pull origin xxxxxxxx (会执行合并 - 远程分支名称) 实际git fetch,再做git merge。
如果需要有选择的合并 git fetch是更好的选择。
效果相同时 git pull将更为快捷。
2.1 提交/推送
git push origin xxxxxxxxxxx
git push origin xxxxxxxxxxx
2.2.在本地分支上合并远程分支。
git merge origin/xxxxxxxxxxx
git checkout master
git merge hotfix

2.3 添加文件
git add <file> 提交单个文件
git add . // 提交所有发生变化的文件添加到暂存区(增改),不包括删除
git add -u // 只提交修改的文件和删除添加到暂存区,不包括新文件
git add -A //所有文件(. && -u 集合) git的版本不同,命令则不一样
2.4 放弃修改
git fetch --all 获取所有分支
git add .
git reset --hard origin/xxxxxxxx
git pull
或者
git reset --hard
git pull

2.5 修改分支名字
git branch -m old_branch new_branch # Rename branch locally
git push origin :old_branch # Delete the old branch
git push --set-upstream origin new_branch # Push the new branch, set local branch to track the new remote
2.6 合并
分支合并,比如本地分支fz1, 合并到fz2
git checkout fz2
git merge fz1
如下:
将分支切换到master
git checkout master
二、将代码pull到本地
git pull
三、修改冲突
四、提交到本地
git add .
git commit -m "merge"
五、切换到你所在分支dev
git checkout dev
六、merge
git merge master
2.7 删除本地分支
//查看本地分支
git branch
//删除目标分支
git branch -D master
//重新拉取master分支
git checkout master
2.8.回退
git log
(谨慎使用 使用前一定要先提交) git reset --hard 0177572d5e1f88d0b6b489a49e56e882ced15f12
版本号 git reflog
git reset –hard 版本号
git reset –hard 98abc5a
版本回退提交
git log
git push origin xxxxxxxxxx -f

本地回退 git reset --hard commit_id(可用 git log –oneline 查看)
远程回退 git push origin HEAD --force #远程提交回退


git远程版本回退
git push origin HEAD --force #远程提交回退
下面的命令也可以实现远程版本回退
git reset --hard HEAD~1
git push --force
git reset --hard xxxxxxxxxxxxxxxx

merge后回退
第一步:git checkout到你要恢复的那个分支上
git checkout develop
第二步:git reflog查出要回退到merge前的版本号
git reflog
第三步:git reset --hard [版本号]就回退到merge前的代码状态了
git reset --hard f82cfd2

2.9 查看差异
dev 有,而 master 中没有的
git log dev ^master
TortoiseGit
查看分支差异
TortoiseGit -------> Diff with previous version
https://www.cnblogs.com/gopark/p/10272100.html
3.0 查看差异 git status
3.1 修改注释 git commit --amend
5.遇到的异常
git checkout release xxxxxxxx Filename too long
目录下配置 git config --global core.longpaths true 解决问题


3.本地过滤无效问题
1.原因是你在新增.gitignore(或者在文件中加入README.md)之前就已经提交 且把README.md纳入项目中 后续git会一直跟踪这个文件
2.如果你在.gitignore中改为忽略.md结尾的文件并提交,在新建一个md文件,已定不会被跟踪
3.[不改.gitignore文件前提下]解决该问题执行以下第一个,然后提交,后续不会再跟踪README.md文件了
git rm --cached readme1.txt 删除readme1.txt的跟踪,并保留在本地。
git rm --f readme1.txt 删除readme1.txt的跟踪,并且删除本地文件。

解决:
git rm -r --cached README.md

猜你喜欢

转载自www.cnblogs.com/tongbiao/p/11670989.html