Lenny-Hu / note

blog
5 stars 1 forks source link

git 常用命令和配置 #39

Open Lenny-Hu opened 5 years ago

Lenny-Hu commented 5 years ago

删除 untracked files

git clean -f // 添加 -n 参数来先看看会删掉哪些文件,防止重要文件被误删

连 untracked 的目录也一起删掉

git clean -fd // 添加-n 参数来先看看会删掉哪些文件,防止重要文件被误删
Lenny-Hu commented 5 years ago

git本地分支和远程分支改名

git branch -m old_branch new_branch

git push origin :old_branch

git push origin new_branch

Lenny-Hu commented 5 years ago

git 删除本地仓库的某次指定的提交

reset命令有3种方式:
1:git reset --mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息

2:git reset --soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可

3:git reset --hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容
Lenny-Hu commented 5 years ago

Git 修改已提交的commit注释

修改最后一次注释 如果你只想修改最后一次注释(就是最新的一次提交),那好办: git commit --amend 出现有注释的界面(你的注释应该显示在第一行), 输入i进入修改模式,修改好注释后,按Esc键 退出编辑模式,输入:wq保存并退出。ok,修改完成。

参考 https://www.jianshu.com/p/098d85a58bf1

Lenny-Hu commented 5 years ago

git 撤销,放弃本地修改

Lenny-Hu commented 4 years ago

git 常用配置

[user]
    name = 名称
    email = 邮箱
[core]
    autocrlf = false
[diff]
    tool = bc4
[difftool "bc4"]
    cmd = \"C:/Program Files/Beyond Compare 4/BCompare.exe\" \"$LOCAL\" \"$REMOTE\"
[merge]
    tool = bc4
[mergetool "bc4"]
    cmd = \"C:/Program Files/Beyond Compare 4/BCompare.exe\" \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\"
Lenny-Hu commented 4 years ago

git 导出某次提交变更的文件

如下,将最近一次提交记录的差异文件导出到d盘

git diff --name-only HEAD HEAD^ | xargs tar -cf /d/test/gz/code.tar

HEAD 和 HEAD^ 表示当前和上一次提交之间的差异文件

Lenny-Hu commented 3 years ago

git配置多个密钥提交到不同的仓库

1.生成密钥或者将已有的密钥拷贝到.ssh目录下,同时改名作为区分,如果是生成的公钥还需配置到仓库网站上

cd ~/.ssh
ssh-keygen -t rsa -C "xxx@qq.com"
......

2.在.ssh目录下创建config文件`

// config文件内容
host github.com
    Hostname github.com
    User user1
    IdentityFile ~/.ssh/id_rsa_github

host gitlab.com
    Hostname gitlab.com
    User user2
    IdentityFile ~/.ssh/id_rsa

3.测试是否能连通,成功后就可以拉\推代码到仓库了,但此时仓库上的提交记录显示的用户名和邮箱显示的是全局配置~/.gitconfig中的

ssh -T git@github.com

4.如果要配置提交记录中的用户和邮箱,在项目目录下执行以下命令,该配置会保存在项目根目录.git/config

git config user.name user1
git config user.email xxxx@qq.com