Fitting spline surfaces to 3D objects is a fundamental problem in the fields of computer-aided design and engineering. In this paper, we propose a surface fitting method using G-NURBS which is capable of handling control meshes with arbitrary topology. This method can adaptively adjusting the number and positions of control points based on the geometrical features of the surface, while accurately capturing sharp features such as sharp edges and corners. The proposed method has been tested and evaluated on various surface fitting tasks, demonstrating its effectiveness. Our method can achieve higher fitting accuracy and well respect the geometrical features of the input data with fewer control points.