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

posted @ 2020-08-17 15:05  许伟强  阅读(122)  评论(0编辑  收藏  举报