Developer J.K.

明明可以靠颜值吃饭但偏偏想要写代码做产品的jaykon

Git的日常

第一步当然把代码Clone下来进进行管理

1
git clone git@192.168.1.1:xxx.git

习惯性动作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
//当面代码有哪些文件修改了
git status

//当前所在分支
git branch

//更新代码
git pull

//查看提交记录
git log

//将新增的文件加入版本管理
git add . //全部加入
git add [file] //单个加入


//提交代码:建议每完成一件事都提交代码,注释很重要
git commit -a -m"我随意改一下,别生气"

//将代码推到服务端
git push

//从当前分支新建分支
git checkout -b dev
git push --set-upstream origin dev //当这个分支需要推送到服务器时,须执行如下指令

//切换分支
git checkout dev

//将dev合并到当前分支
git merge dev

删除分支

1
2
3
4
5
//删除本地分支
git branch -D dev

//删除远程分支
git push origin --delete dev

查看本地和远程分支

1
git branch -a

Tag

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//新增tag
git tag v2.2.0

//推送到服务器
git push —-tags

//删除tag
git tag -d v1.0.0

//从服务器删除tag
git push origin :refs/tags/v1.0.0

//checkout某个tag 变成一个新的分支
git checkout tags/<tag_name> -b new_branch

恢复到某个版本

1
2
3
4
5
//首先,查看一下版本记录
git log //每次提交都写注释的好处来了

//挑一个版本号进行恢复
git reset –-hard 9aa51d89799716aa68cff3f30c26f8815408e926

单独文件恢复到某个版本

1
2
3
4
5
6
7
8
//查看文件修改记录
git log -p /model/abc.xib

//恢复文件
git reset 9aa51d89799716aa68cff3f30c26f8815408e926 [文件路径]

//如查本地正在编辑且未commit这个文件,需要checkout一下
git checkout /model/abc.xib

直接在远程恢复到某个版本(一般很少用到)

1
2
git reset --hard <commit-hash>
git push -f origin <branch>

正在开发,须要去修改别的分支的BUG,但又不想提交当前代码

1
2
3
4
5
6
7
8
9
10
11
12
13
//现在代码变成最后提交的版本,刚刚正在编辑的代码已经暂存到缓存区
git stash

//切换到另一分支修改代码
git checkout dev
git commit -a -m"修改紧急的BUG"
git push

//回到原来的分支
git checkout

//恢复现场,可以继续开心地coding
git stash pop

暂时只想到这么多了,有更好用的场景求指点

其实更重要的是版本管理的策略和思路,具体可见文章 《Git分支管理策略》 《Git手册》