Git学习笔记

git原理图解一文就够了   git概念与操作详解   用GitBash连接本地和GitHub    bash上操作Git详细教程与概念    Git 少用 Pull 多用 Fetch 和 Merge  关于git的分支  git免密码登陆(一次写入文件)    GitHub上README.md教程  国内github访问加速   gitlab通过公私钥登录  强制找回gitlab管理员密码    如何访问GitHub更快   CentOS7.5安装GitLab及汉化

1)初始化并用GitBash连接本地和GitHub 

设置用户名和邮箱 (识别操作者)
git config --global user.email "you@example.com" 
git config --global user.name "Your Name"
生成公钥
1ssh-keygen -C ‘your@email.address’ -t rsa  (验证密码确认有向网站提交的权限)
2) 去github网页相应位置粘贴rsa.pub 中的内容 网站位置:Settings -- SSH ang GPG keys -- New SSH key -- Add SSH key

把本地项目上传到GitHub

进入本地文件  cd ~/Desktop/filename
2)把该文件夹变成Git可管理的仓库  git init
3)把项目添加到仓库   git add .
4)把项目提交到仓库   git commit -m "注释内容"
5)在GitHub上创建仓库并与本地仓库关联
git remote add origin https://github.com/yourname/filename.git
git remote add origin git@github.com:yourname/filename.git
6)如果在创建仓库时同时创建了readme文件,要先将内容合并
git pull --rebase origin master
7)把本地库的所有内容推送到远程仓库
git push -u origin master下一次继续往该仓库推送文件则可以省略-u命令: git push origin master  
8) 把远程项目克隆到本地
    选择一个空文件夹,鼠标右键选择git bash here
    在终端输入命令 git clone + 自己Git库的地址
View Code

2)  Git 远程强制推送:  git push origin master --force

3) 强制更新覆盖本地: 

git pull  时出现冲突 放弃本地修改,使远程库内容强制覆盖本地代码
git fetch --all //只是下载代码到本地,不进行合并操作
git reset --hard origin/master //把HEAD指向最新下载的版本

4)git 回退上一版:git reset  --hard HEAD^  上2版:git reset  --hard HEAD^^ 上100版:git reset  --hard HEAD~100

5)Git 少用 Pull 多用 Fetch 和 Merge :pull可能造成用远程内容直接覆盖本地工作区;用git fetch先从远端取回代码到本地仓库,再用git merge将本地仓库和工作缓存区合并,如果中间有版本变化他会区别出来。(此处待完成考证)

6)如果提交commit太多,需要清理可以回到某个提交点(git reset --hard 139dcfaa558e3276b30b6b2e5cbbb9c00bbdca96  ; 然后git push -f 强制推送)再将原来备份的类容加到之前的文件版本中,再提交修改,这样以前过多的提交都清除了。如果删除某个commit:(git rebase -i “commit id”^ wq保存;再git push -f ) 

7)关于git分支的操作

查看分支:git branch  显示本地分支 ('git branch -a' #显示git所有分支,包括远程)

创建分支:git branch <name>

切换分支:git checkout <name>

创建+切换分支:git checkout -b <name>

合并某分支到当前分支:git merge <name1>(需在分支外合并,不能在name1合并自身)

删除分支:git branch -d <name>  (需在分支外删除,否则不能删除自身)git branch -d -f <分支name> 强制删除分支

舍弃当前操作,强制切换到主分支: git checkout -f master