一、 GIT简述
三个区域:工作区、版本库(含暂存区)、远程仓库
文件的三种状态:
1)Untracked files → 文件未被跟踪;
2)Changes to be committed → 文件已缓存,这是下次提交的内容;
3)Changes bu not updated → 文件被修改,但并没有添加到缓存区。
二、bash
1、bash环境搭建和基本设置
1.1安装git:
1.2安装TortoiseGit
1.3配置本地环境
a.设置帐号密码
git config -global user.name “cWX509462” 设置帐号
git config -global user.email “chenlong76@huawei.com” 设置邮箱
b.设置公钥私钥
cd ~/.ssh
ls查看公钥目录
ssh-keygen -t rsa -C "chenlong76@huawei.com" 生成密钥和公钥
ssh -add id_rsa 添加私钥到 ssh(如果配置过指纹密码就要输入验证)
ssh git@github.com 测试本机在版本库的权限
c.设置中文
设置中文文件名
git config core.ignorecase false 设置大小写敏感
d.
e.
git config –list 查看所有配置
2、bash基本操作
git init初始化本地仓库
git clone xx 克隆仓库
git remote add origin git@xxx 从仓库添加一些初始文件
git remote show origin 查看远程仓库信息
git add <file> 添加到版本控制
git status查看当前版本库状态
git commit -m < annotate> 将版本库中修改的文件提交到本地仓库
git commit -a -m<annotate> 将工作区中修改的文件提交到本地仓库
git diff <file> 查看XX文件修改了那些内容
git log 查看历史记录
git reset –hard HEAD^ 或者 git reset –hard HEAD~ 回退到上一个版本(如果想回退到100个版本,使用git reset –hard HEAD~100 )
git reflog 查看历史记录的版本号id
git checkout — XX 把XX文件在工作区的修改全部撤销。
git rm XX 删除XX文件
git clone https://github.com/tugenhua0707/testgit 从远程库中克隆
git remote 查看远程库的信息
git remote –v 查看远程库的详细信息
git push origin master Git会把master分支推送到远程库对应的远程分支上
a. 获取代码
b. 添加版本控制
c. 提交版本库
d. 提交工作区
e. Push
其他问题:
a. 冲突解决
树冲突:git rm <file>
内容冲突:git mergetool
b. 版本控制回滚
git reset -- frotz.c
c. 提交回滚
d. push回滚
撤销
上述场景一,在未进行git push前的所有操作,都是在“本地仓库”中执行的。我们暂且将“本地仓库”的代码还原操作叫做“撤销”!
情况一:文件被修改了,但未执行git add操作(working tree内撤销)
git checkout fileName
git checkout .
· 1
· 2
情况二:同时对多个文件执行了git add操作,但本次只想提交其中一部分文件
$ git add *
$ git status
# 取消暂存
$git resetHEAD<filename>
· 1
· 2
· 3
· 4
情况三:文件执行了git add操作,但想撤销对其的修改(index内回滚)
# 取消暂存
git resetHEADfileName
# 撤销修改
git checkout fileName
· 1
· 2
· 3
· 4
情况四:修改的文件已被git commit,但想再次修改不再产生新的Commit
# 修改最后一次提交
$ git add sample.txt
$ git commit --amend -m"说明"
· 1
· 2
· 3
情况五:已在本地进行了多次git commit操作,现在想撤销到其中某次Commit
gitreset[--hard|soft|mixed|merge|keep][commit|HEAD]
回滚
上述场景二,已进行git push,即已推送到“远程仓库”中。我们将已被提交到“远程仓库”的代码还原操作叫做“回滚”!注意:对远程仓库做回滚操作是有风险的,需提前做好备份和通知其他团队成员!
如果你每次更新线上,都会打tag,那恭喜你,你可以很快的处理上述场景二的情况
git checkout <tag>
· 1
如果你回到当前HEAD指向
git checkout <branch_name>
· 1
情况一:撤销指定文件到指定版本
# 查看指定文件的历史版本
git log <filename>
# 回滚到指定commitID
git checkout <commitID> <filename>
· 1
· 2
· 3
· 4
情况二:删除最后一次远程提交
方式一:使用revert
git revert HEAD
gitpushorigin master
· 1
· 2
方式二:使用reset
gitreset--hard HEAD^
gitpushorigin master -f
· 1
· 2
二者区别:
- revert是放弃指定提交的修改,但是会生成一次新的提交,需要填写提交注释,以前的历史记录都在;
- reset是指将HEAD指针指到指定提交,历史记录中不会出现放弃的提交记录。
情况三:回滚某次提交
# 找到要回滚的commitID
gitlog
git revert commitID
删除某次提交
gitlog--oneline -n5
· 1
git rebase-i"commit id"^
· 1
注意:需要注意最后的^号,意思是commit id的前一次提交
git rebase-i"5b3ba7a"^
· 1
在编辑框中删除相关commit,如pick 5b3ba7a test2,然后保存退出(如果遇到冲突需要先解决冲突)!
git push origin master -f
· 1
通过上述操作,如果你想对历史多个commit进行处理或者,可以选择git rebase -i,只需删除对应的记录就好。rebase还可对 commit 消息进行编辑,以及合并多个commit。
3、bash命令集合
4、bash常见问题解决
4.1 修复TortoiseGit文件夹和文件图标不显示
打开 regedit.exe ,准备修改注册表
找到
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer
新建一个“字符串值”名称为 “Max Cached
Icons” 值是 “2000”
重启一下电脑,图标就显示了。
三、eclipse
1、eclipse环境搭建和基本设置
2、eclipse基本操作
3、eclipse常见问题解决
四、iSource
1、iSource环境配置
2、iSource功能
五、github
1、github环境配置
2、github功能
六、码云
1、码云 环境配置
2、码云 功能
七、Gitlab
1、Gitlab环境配置
2、github功能
八 、Bitbucket
1、Bitbucket环境配置
2、Bitbucket功能
浙公网安备 33010602011771号