Exercises that build muscle without weights
Lifting weights can be a good way to build muscle. However weight-lifting movements are often not very natural. The strength you gain does not always help in real-life situations. This is especially true when using a machine. In most cases your body weight is much heavier than any weights you are going to try to lift. If your body weight is not enough for the challenge you want, you can lift it using one arm or one leg.
One major advantage with body-weight lifting is that you are less likely to hurt yourself. I don't need a spotter while lifting my body weight. Another advantage is that you can do these exercises just about anywhere at anytime.
The main disadvantage is that you can not quickly change your body weight. But you can quickly modify the exercise to make it more difficult, which takes less time and effort than changing weights.
Gaining Muscle By Progressing to More Difficult Exercises
To gain muscle you need to challenge yourself. While push-ups are a good bodyweight exercise, standard push-ups are limited in their effectiveness; they may challenge you at first but over time they get easier and you stop making progress. You don't lift very much of your body weight. If you want to see significant progress you need to increase the difficulty and think big. Work your way up to much more difficult exercises like handstand push-ups.
There are a lot of really difficult body weight exercises. You are not limited to the exercises you can already do. Progress to body weight exercises that require more strength so you can become bigger and stronger. If you work on your whole body you can significantly increase your muscle weight; that means you will have even more weight to work with.