xxxxxxxxxx
把修改的代码通过git add -A git commit git push origin HEAD 通过git log 能发现生成了一个提交并推向远程仓库,如果架设了内网git库,这样每日工作记录存在一份在本地,一份在外网络git库,还有一份内网git库,这样就不容易丢失工作记录
xxxxxxxxxx
由于git采用分布式的工作模式,开发者可以在没有网络的情况下进行开发,将代码提交到本地生成历史记录,待有网络的情况下再提交,以及更新最新的代码亦可以。
xxxxxxxxxx
现场版本控制相当于在客户现场或者产品部署的时候,发现代码需要修改,并要将修改的代码一并带走,相较于SVN复杂的流程以及不能逐一的到处补丁文件,而git很方便,1.创建一个目录,git init,将.git/config信息修改,当然本地的.gitconfig应该有对应的信息,2.git add -A;3.git commit -m "begin",为初始提交建立一个tag:v1;git tag v1 4. 就可以在工作区继续工作,git commit提交
5.当结果满意后可以推向远程目录的版本库,也可以将补丁文件逐渐导出,支持二进制文件;git format-patch v1..HEAD 6.git send-email *.patch ps:email是.gitconfig里的信息
xgit不会引入其他辅助目录,而且还可以通过.gitignore排除引入版本库的文件,支持正则
xxxxxxxxxx
git提交说明简单并且会被跟踪的,如果对最新提交还可以修补git commit --amend 也可以修改历史记录的提交说明 git rebase -i <commit-id>
xxxxxxxxxx
git rm --cached 文件;git commit --amend;历史提交;git rebase -i <commit-id>
也可以通过 git rm ;git add ,git commit,
xxxxxxxxxx
git可以通过提交暂存区对提交内容做有目的提交
git add -u 所有修改的提交
git add -A 本地删除文件 新增文件 修改文件
git add -p 指定文件
xxxxxxxxxx
相较于SVN,git的差异比较更强大,支持二进制差异比较
git diff --word-diff 逐字比较
git diff 工作区修改的差异(未提交到暂存区)
git diff --cached或者--stage(暂存区和工作区修改的对比)
xxxxxxxxxx
工作区修改文件后,可以通过 git stash保存工作进度,然后切换分支,工作区会变得干净(最初的状态)
然后切换分支,git checkout <new_branch>,当新的分支修改完之后,切换原来的分支,git stash pop就OK了
xxxxxxxxxx
相较于SVN更复杂,学习周期长。
可能是出于开源的原因,git在权限这方面比较开放,权限方面显得不那么严格,一般我们会通过代码托管工具进行权限管控如:gerrit gitlab等