I'm doing course for CCNA and in one lecture teacher showed how to make a crossover cable for Gigabit Ethernet. But as I know Gigabit Ethernet uses all wires of twisted pair cable and each pair is used for both data transmission and reception, so devices that use this standard should be able to transmit and receive on every pin. Then why do we need a crossover cable in such case? Of course I know about Auto-MDI(X) and that it allows to use straight cable in all cases, but it doesn't cancel my question.
Short answer: you don't.
1000BASE-T requires auto negotiation to work - the fast link pulses are to be transmitted and received on specific pairs, compatible with 10BASE-T and 100BASE-TX. In theory, this requires the normal T586A/T568B crossover cable between two MDI ports or two MDI-X ports. Furthermore, the other two pairs would need to be crossed as well in order to match the expected transmitter-receiver pairs, requiring a special gigabit crossover cable. This is detailed in IEEE 802.3 40.8.2 Crossover function.
However, practically all 1000BASE-T interfaces support (the officially optional) Auto MDI-X from Clause 40.4.4, making a crossover unnecessary. In addition, the 1000BASE-T PMA sublayer identifies each pair on each side (Clause 40.1.4), so 1000BASE-T simply works with or without single or dual crossovers.