Git使用笔记
1 临时修复一个问题
切换分支到master
git checkout master
基于master分支创建分支
git branch fix_20201027
开发测试完成以后
git add . && git commit -m 'fix 20201027 error'
开发测试完毕后切换到master分支
git checkout master
合并在新分支的更改
git merge fix_20201027
推送到远程
git push origin
删除本地分支
git branch -d fix_20201027
2 增加一个分支长期开发并线上同步一个
git checkout master - 切换到master分支 git branch new_branch_name --创建本地新分支 git push origin develop:develop --将本地分支(可以是新创建的)推送到员工develop分支(远程服务器没有会自动创建) git checkout new_branch_name 切换到新的分支 git push --set-upstream origin new_branch_name -- 设置本地当前分支跟踪远程new_branch_name git push origin --delete new_branch_name -- 删除远程分支
Git远程推送时记住用户名和密码
a 推送时候带上账户密码
git remote set-url origin http://yourname:password@bitbucket.org/yourname/project.git
b 本仓库内设置账户密码文件
touch .git-credentials
内容为:
https://yourname:password@github.com
c 设置全局账户密码
# git config命令 # 1.查看git配置信息 $ git config --list # 2.查看git用户名、密码、邮箱的配置 $ git config user.name $ git config user.password $ git config user.email # 3.设置git用户名、密码、邮箱的配置 $ git config user.name "hhh" $ git config user.password "123abc" $ git config user.email "123@qq.com" # 3.设置git用户名、密码、邮箱的配置(全局配置) $ git config --global user.name 用户命 $ git config --global user.name hhh $ git config --global user.password 密码 $ git config --global user.password 123abc $ git config --global user.password 邮箱 $ git config --global user.email "123@qq.com"
Git在windows的账户密码
控制面板\用户帐户\凭据管理器
远端的账户密码更改以后,本地需要更改用户凭据
疑问点:
1 git fetch 和 git pull 的区别?
假设你在本地develop分支(设置跟踪远程分支 origin/develop)那么执行 fetch 会将远程代码变更拉取到本地 - 但不会更改本地的git库,而git pul直接更改文件并提交,相当于
git pull = git fetch + git add . + git commit + git push ( git fetch
在远程分支上获取信息,但不对本地master
分支进行任何更改 )
git add 之后撤销操作
git add .
git reset
git commit 之后回滚到某一个版本
git reset {$version_hash}
git 代码写到一半,不想提交代码却又需要切换到其他分支处理
git stash save "dev分支暂时不写,切换到test分支修复东西" git stash list git status
改完了切换回来这个分支继续原来的工作
git stash pop
https://www.cnblogs.com/tocy/p/git-stash-reference.html
git 改错了文件需要还原
git checkout {$file_path}
git 创建 ssh秘钥并应用
mkdir ~/.ssh cd ~/.ssh ssh-keygen -t rsa -C '435861851@qq.com' cat ~/.ssh/id_rsa.pub
将秘钥粘贴到你的github或者码云上
如何多个ssh密钥
https://gitee.com/help/articles/4229#article-header0
git 之中文件的状态
Untracked files //不属于版本库 Changes to be committed (stage)//已经添加到暂存区 - Untracked //不属于版本库 - Unmodified - Modified - Staged https://zhuanlan.zhihu.com/p/68228859
git 合并提交节点( 强力推荐将基于当前分支拉出分支去处理 )
# 罗列提交的前面30个节点 git rebase -i head~30 # 在被合并的节点前添加 s 表示将当前节点并入上一个节点 # 更改commit信息 # 提交 # 推送远程 git push -f
查看分支来源
git reflog show feature-csrf-630-xwq
Git merge的三种操作
https://www.jianshu.com/p/ff1877c5864e
1. 原封不动拷贝节点 (会产生新节点) 2. 将被拉过来的分支的节点多个合并为1个 squash merge (会改变原提交) 3. rebase merge(先dev rebase再master merge dev)
参考博客:
https://blog.csdn.net/qq_34802511/article/details/90055273
https://www.jianshu.com/p/7182b2faab84