zgq105 / blog

2 stars 0 forks source link

git使用总结 #16

Open zgq105 opened 5 years ago

zgq105 commented 5 years ago

Git 是一个开源的分布式版本控制系统,git关联的每台计算机都存有完整的版本信息。

1. git创建版本库(创建一个仓库)

创建版本库首先创建好文件夹,然后在这个定位到这个目录通过命令git init,就创建好了一个仓库,比如需要创建git仓库prj01,只需要定位到prj01这个目录,然后执行 git init prj01指令 ,prj01仓库就创建好了。

2. 添加文件到git仓库

2.1 使用git add 文件名,一次性添加多个文件的情形,使用空格隔开文件即可(如:单个git add aa.txt,多个文件git add aa.txt  bb.txt  cc.txt)

2.2 使用git commit提交到仓库,如果需要添加本次提交的描述信息需要在后面加上 -m,如:git commit -m "msg info"。

3. 仓库的状态

使用git status 即可查看当前仓库状态情况;使用git diff 文件名(如:git diff aa.txt)可以查看文件的修改内容。

4. 版本回退

git log用于查看历史提交信息,git reflog查看命令历史,git reset --hard commit_id回退到某个版本。

5. 工作区和暂存区

工作区就是客户机仓库目录文件夹,.git隐藏的文件夹就不算工作区,是git版本库;git add提交到暂存区,git commit 就是把暂存区的所有文件提交到当前分支上。

6. 修改管理

每次修改工作区中的文件,需要执行git add操作添加到暂存区,git commit 才会将修改的结果提交到当前版本;。当想直接丢弃工作区的修改时,用命令git checkout -- file。如果工作区文件修改了,而且添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,再执行git checkout -- file。命令git rm file用于删除文件。

7. 远程仓库

远程仓库的作用就是方便团队协同工作,GitHub上可以免费托管Git仓库,使用ssh key的方式管理远程仓库;关联一个远程库(情形:现有本地仓库,后又远程仓库),使用命令git remote add origin git@server-name:path/repo-name.git;关联后,使用命令git push origin master推送master分支的所有内容到远程仓库。当我们先创建远程仓库时,需要克隆远程仓库到本地仓库时,使用git clone命令即可。

8. git分支管理

当初始化一个仓库时,默认会有一个master分支,创建分支使用git branch 分支名(比如:git branch dev就创建了一个名称为dev的分支);git branch用于查看所有分支;切换分支:git checkout(比如:git checkout dev就切换到了dev这个分支上);创建+切换分支:git checkout -b;合并某分支到当前分支:git merge;删除分支:git branch -d。

     分支合并过程中如果发生了冲突,需要手动解决冲突在执行提交。合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而 fast forward 合并就看不出来曾经做过合并。

     修复 bug 时,我们会通过创建新的 bug 分支进行修复,然后合并,最后删除;当手头工作没有完成时,先把工作现场git stash一下,然后去修复 bug,修复后,再git stash pop,回到工作现场。

     开发一个新 feature,最好新建一个feature分支;如果要丢弃一个没有被合并过的分支,可以通过git branch -D 强行删除。

       查看远程库信息,使用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,如果有冲突,要先处理冲突。

9. git标签管理

git tag name创建一个标签,git tag查看所有标签。命令git push origin 可以推送一个本地标签;命令git push origin --tags可以推送全部未推送过的本地标签;命令git tag -d 可以删除一个本地标签;命令git push origin :refs/tags/可以删除一个远程标签。

10. 使用GitHub

在 GitHub 上,可以任意 Fork 开源仓库;自己拥有 Fork 后的仓库的读写权限;可以推送 pull request 给官方仓库来贡献代码。

11. 自定义git

在使用git的过程中如果需要忽略某些文件是,比如.class文件不需要提交管理,需要在仓库目录中创建.gitignore文件,.gitignore文件本身要放到版本库里,并且可以对.gitignore做版本管理。但需要配置别名时,使用git config指令。