总结
- 使用 git pull --rebase 和 git merge --no-ff 其实和直接使用 git pull git merge 得到的代码应该是一样。
- 使用 git pull --rebase 主要是为是将提交约线图平坦化,而 git merge --no-ff 则是刻意制造分叉。
六、SSH
1. 查看是否生成了 SSH 公钥
- $ cd ~/.ssh
- $ ls
- id_rsa id_rsa.pub known_hosts
其中 id_rsa 是私钥,id_rsa.pub 是公钥。
2. 如果没有那就开始生成,设置全局的user.name与user.email
git config --list // 查看是否设置了user.name与user.email,没有的话,去设置
- git config --list // 查看是否设置了user.name与user.email,没有的话,去设置
- // 设置全局的user.name与user.email
- git config --global user.name "XX"
- git config --global user.email "XX"
3. 输入 ssh-keygen 即可(或ssh-keygen -t rsa -C "email")
- $ ssh-keygen
- Generating public/private rsa key pair.
- Enter file in which to save the key (/Users/schacon/.ssh/id_rsa):
- Enter passphrase (empty for no passphrase):
- Enter same passphrase again:
- Your identification has been saved in /Users/schacon/.ssh/id_rsa.
- Your public key has been saved in /Users/schacon/.ssh/id_rsa.pub.
- The key fingerprint is:
4. 生成之后获取公钥内容,输入 cat ~/.ssh/id_rsa.pub 即可, 复制 ssh-rsa 一直到 .local这一整段内容
- $ cat ~/.ssh/id_rsa.pub
- ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSU
- GPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3
- Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XA
- t3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/En
- mZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbx
- NrRFi9wrf+M7Q== schacon@agadorlaptop.local
5. 打开 GitLab 或者 GitHub,点击头像,找到设置页
6. 左侧找到 SSH keys 按钮并点击,输入刚刚复制的公钥即可
七、暂存
git stash 可用来暂存当前正在进行的工作,比如想 pull 最新代码又不想 commit , 或者另为了修改一个紧急的 bug ,先 stash,使返回到自己上一个 commit,,改完 bug 之后再 stash pop , 继续原来的工作;
- 添加缓存栈: git stash ;
- 查看缓存栈: git stash list ;
- 推出缓存栈: git stash pop ;
- 取出特定缓存内容: git stash apply stash@{1} ;
八、文件名过长错误
Filename too long warning: Clone succeeded, but checkout failed.
- git config --system core.longpaths true
复制代码
九、邮箱和用户名
查看
- git config user.name
- git config user.email
修改
- git config --global user.name "username"
- git config --global user.email "email"
十、.gitignore 更新后生效:
- git rm -r --cached .
- git add .
- git commit -m ".gitignore is now working”
十一、同步Github fork 出来的分支
1、配置remote,指向原始仓库
- git remote add upstream https://github.com/InterviewMap/InterviewMap.git
2、上游仓库获取到分支,及相关的提交信息,它们将被保存在本地的 upstream/master 分支
- git fetch upstream
- # remote: Counting objects: 75, done.
- # remote: Compressing objects: 100% (53/53), done.
- # remote: Total 62 (delta 27), reused 44 (delta 9)
- # Unpacking objects: 100% (62/62), done.
- # From https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY
- # * [new branch] master -> upstream/master
3、切换到本地的 master 分支
- git checkout master
- # Switched to branch 'master'
(编辑:ASP站长网)
|