「这是我参与11月更文挑战的第5天,活动详情查看:2021最后一次更文挑战」
git下载安装:
1.sudo apt-get install git-core
2.git --version,可查看git版本
3.初始化本地用户
$git config --global user.name LDAP帐号
$git config --global user.email LDAP帐号@thundersoft.com
生成SSH密钥
$ssh-keygen -t rsa -C “youremail@xxx.com”
注:一路回车,不用输密码这样,在家目录 .ssh目录下应该会生成两个文件id_rsa, id_rsa.pub
git 常用命令
新建分支:
1.git branch [-r/-a]列出所有分支[列出所有远程分支/列出所有本地分支和远程分支]
2.git branch [branch-name] 新建一个分支,但依旧停留在当前分支
3.git checkout -b [branch] 新建分支,并切换到该分支
git checkout [branch-name] 切换到指定分支,并更新工作区
git checkout - 切换到上一个分支
4.git merge [branch] 合并指定分支到当前分支上
5.git rebase用于把一个分支的修改合并到当前分支
git rebase A B 把B分支修改合并到A分支
在rebase的过程中,也许会出现冲突(conflict). 在这种情况,Git会停止rebase并会让你去解决 冲突;在解决完冲突后,用"git-add"命令去更新这些内容的索引(index), 然后,你无需执行 git-commit,只要执行: git rebase --continue,这样git会继续应用(apply)余下的补丁。$ git rebase --abort来终止rebase的行动。
我们在使用git pull命令的时候,可以使用--rebase参数,即git pull --rebase,这里表示把你的本地当前分支里的每个提交(commit)取消掉,并且把它们临时 保存为补丁(patch)(这些补丁放到".git/rebase"目录中),然后把本地当前分支更新 为最新的"origin"分支,最后把保存的这些补丁应用到本地当前分支上。
6.git branch -f main HEAD~3 main分支向上切换三个分支
git checkout HEAD~4 向上切换三个分支HEAD
7.git reset HEAD~1 向后移动一个分支,撤销commit,回退远程分支的版本
git revert HEAD 撤销最近一次提交,代码回退了,版本是向前的
8.git cherry-pick C2 C4 在当前版本下,复制C2,C4版本
git rebase -i HEAD~4 弹出交互式的界面让用户编辑完成合并操作,HEAD~4制定编辑区间
9.git commit --amend 对最新版本进行修改
10.git tag 不会随着新的提交而移动。
git tag v1 C1 给C1设置标签v1
远程分支:
1.git clone 在本地创建一个远程仓库的拷贝
2.git fetch 从远程仓库获取数据(1.从远程仓库下载本地仓库确实的提交记录,2.更细远程分支指针)
3.git pull 抓取更新在合并到本地分支
git pull 就是git fetch和git merge的缩写
4.当你本地仓库提交了新版本,而远程仓库也有同事提交了新版本,使用git pull --rebase, git push命令相当于(git fetch, git rebase o/main ,git push)
使用git pull,git push 命令相当于(git fetch,git merge o/main,git push)
5.团队合作中,可能main被锁定, 需要一些Pull Request流程来合并修改
6.git push origin main 代表在本地仓库中的“main”分支,获取所有的提交,再到远程仓库“origin”中找到“main”分支,将远程仓库中没有的提交记录都添加上去
7.git push origin foo:main 本地仓库的foo分支push到远程仓库的main分支
8.git push origin :foo 若远程仓库有foo分支,则会删除
git fetch origin :foo 若本地仓库没有foo分支,则会新建
9.git pull origin bar~1:bugFix
相当于:git fetch origin bar~1:bugFix; git merge bugFix