git

来源:互联网 发布:软件开发业务员 编辑:程序博客网 时间:2024/06/09 21:21

从一般开发者的角度来看git有以下功能:

1:从服务器上克隆数据库(包括代码和版本信息)到单机上。

2:在自己的机器上创建分支,修改代码。

3:在单机上自己创建的分支上提交代码。

4:在单机上合并分支。

5:新建一个分支,把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。

6:生成补丁(patch),把补丁发送给主开发者。

7:看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。

8:一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。

git有以下常用的命令:

添加文件 git add text.txt

创建文件 mkdir 文件名

删除文件 rm test.txt

查看信息 git status  ,cat 文件名  , ls

提交信息 git commit 文件名

恢复信息 git checkout -- test.txt

把暂存信息撤销 git reset HEAD file

退回版本 git reset

origin取出更新并合并到当前分支: Git pull 

用垃圾回收机制回收清除由于reset而造成的垃圾代码:git gc

强行删除:$ git branch -D feature-vulcan

切换到master分支:git checkout master

适当显示不同颜色:$ git config --global color.ui true等

git branch 不带参数:列出本地已经存在的分支,git branch -r 列出远程分支, git branch -a 列出本地分支和远程分支


如果要创建一个版本库的话首先创建文件:$mkdir learngit

进入文件目录:$cd learngit

把目录变成git可以管理的仓库:$git init

把文件添加到仓库:$git add

把文件提交到仓库:$git commit -m "自定义名字"

远程与本地仓库关联:$git remote add origin git@github.com:ningxingxing/learngit.git

(注意把ningxingxing换成自己的github账号名)

把本地库的所有内容推送到远程库上:$git push -u origin master(注意切换到相应分支上)

若推送过程中出现:fatal:remote origin already exists

解决办法:先输入$git remote rm origin

再输入:$git remote add origin git@github.com:ningxingxing/learngit.git

注册完github后生成秘钥:

$ ssh-keygen -t rsa -C "youremail@example.com"

克隆一个本地库:$git clone git$github.com:ningxingxing/learngit.git

分支管理策略

新建分支:git checkout -b dev

修改readme.txt 文件内容

提交 git add readme.txt

     Git commit -m “add merge”

切换回master: git checkout master

准备合并分支: git merge --no-ff  -m “merge with no-ff” dev

因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去。

合并后,我们用git log看看分支历史:

Git log --graph --pretty=oneline --abbrev-commit

Bug 分支

1\Git还提供了一个stash功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作:git stash

2\git status查看工作区,就是干净的(除非有没有被Git管理的文件),因此可以放心地创建分支来修复bug。

首先确定要在哪个分支上修复bug,假定需要在master分支上修复,就从master创建临时分支:git checkout master

Git checkout -b issue-101

3、现在修复bug,需要把“Git is free software ...”改为“Git is a free software ...”,然后提交:$ git add readme.txt $ git commit -m "fix bug 101"

4、修复完成后,切换到master分支,并完成合并,最后删除issue-101分支:

$ git checkout master

$ git merge --no-ff -m "merged bug fix 101" issue-101

$ git branch -d issue-101

Feature 分支

$ git checkout -b feature-vulcan

$ git add vulcan.py$ git status

$ git commit -m "add feature vulcan"

切回dev,准备合并:

$ git checkout dev

创建标签

首先,切换到需要打标签的分支上

Git branch

Git checkout master

然后,敲命令git tag <name>就可以打一个新标签了

Git tag v1.0

可以用命令git tag 查看所有标签

Git tag

操作标签

删除标签:git tag -d v0.1

推送某个标签到远程:git push origin v1.0

一次性推送全部尚未推送到远程的本地标签

Git push origin --tags

删除远程标签:先删本地标签,git tag -d v0.9

然后从远程删除:git push origin :refs/tags/v0.9






0 0