GIT常用操作学习
最近在学习GI T版本控制工具,关于GIT的介绍就不做过多阐述,下面将自己平时经常用到的操作,进行一些整理。
-
1.首先需要创建一个版本库:
mkdir myreproistory
-
2.将myreproistory文件夹初始化可以管理的仓库
git init
-
3.将readme.txt文件添加到仓库
git add readme.txt
-
4.把文件提交到仓库
git commit -m "第一次提交readme.txt文件"
-
5.查看仓库当前的状态
git status
-
6.查看readme.txt文件修改情况
git diff readme.txt
-
7.查看文件提交记录
git log git log --pretty=oneline 查看最近一次提交文件的记录
-
8.HEAD表示当前版本,HEAD^表示上一版本
-
9.回退版本
git reset --hard HEAD^ git reset --hard [版本号]
-
10.查看历史版本
git reflog
-
11.撤销修改
git checkout -- readme.txt 把readme.txt文件在工作区的修改全部撤销 1.自修改后还没有被放到暂存区,现在撤销修改就回到和版本库一模一样的状态 2.readme.txt已经添加到暂存区后,又做了修改,现在撤销修改就回到添加到暂存区后的状态
-
12.删除文件:
把test.txt文件删除了: rm test.txt 1.要从版本库中删除该文件,使用:git rm 2.要是删错了,因为版本库中还存在呢,只需要使用:git checkout --test.txt git checkout操作其实是用版本库里的版本替换工作区的版本, 但是注意:从来没有被添加到版本库的文件,如果被删除了,是无法恢复的!
-
13.远程仓库,以GitHub为例:
1.创建SSH Key:在用户主目录下,看是否有id_rsa(私钥)和id_rsa.pub(公钥)文件, 如果没有,打开git bash,输入命令创建SSH Key:ssh-keygen -t rsa -C “邮箱账号” 2.登录GitHub,打开打开“Account settings”,“SSH Keys”页面: 然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容 3.创建自己的远程仓库:myrepository 4.在自己本地仓库的文件夹下运行:git remote add origin git@github.com:[自己GitHub账户名]/[本地仓库名].git 5.添加后,本地的远程仓库的名字就是origin,这是默认叫法 6.将本地库的内容推送到远程:git push(如果没有创建分支,默认是推送到主分支上master的) 第一次推送时:git push -u 从现在起,只要本地做了修改,就可以通过命令推送到GitHub上:git push origin master (第一次使用git的clone或者push命令连接远程仓库时,会得到一个警告,输入yes即可) 7.从远程仓库克隆一个到本地仓库:git clone git@github.com:[自己GitHub账户名]/[本地仓库名].git
-
14.分支管理
1.创建并切换到分支:git checkout -b dev 或者:git switch -c dev 相当于:git branch dev和git checkout dev两步操作 2.查看分支:git branch(*表示当前所属的分支) 3.切换到主分支:git checkout master 或者:git switch master 4.将dev分支合并到主分支:git merge dev 5.删除分支:git branch -d dev
-
15.解决冲突
当dev分支上对readme.txt文件进行了修改并提交,master主分支上也对readme.txt文件进行了修改并提交 将dev分支合并到主分支上时,会提示有冲突文件,必须手动解决完冲突后才能提交 可以先使用git status查看冲突的文件,然后提交完再合并
-
16.为了查看每次合并后,能看出来曾经做过合并的历史信息,需要使用命令:git merge --no-ff -m “合并时的备注信息” dev
-
17.bug分支
当工作没有完成时,没法提交,但是还需要干别的事情,可以使用:git stash 将目前的工作储藏; 当别的工作完成后,想切回之前没有完成的工作, 先使用:git stash list 查看,然后一是使用:git stash apply 恢复,但是恢复后,stash内容并不删除,需要用:git stash drop来删除 另一种方式是用git stash pop,恢复的同时把stash内容也删了 可以多次stash,恢复的时候,先用git stash list查看,然后恢复指定的stash,用命令:git stash apply stash@{[版本号]}
-
18.如果要丢弃一个没有被合并过的分支,可以通过:git branch -D 强行删除
-
19.推送分支
推送分支就是把该分支的所有本地提交推送到远程仓库,推送时要指定本地分支,这样git就会把该分支推送到远程库对应的远程分支上 查看远程库信息,使用git remote -v; 本地新建的分支如果不推送到远程,对其他人就是不可见的; 从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交; 在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致; 建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name; 从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。