TL;DR: In the Government and Binding framework, D-structure had to be built completely before any movement could occur, while in Minimalism movement occurs as the structure is being built, eliminating the need for a D-structure.
In GB syntactic representations are built in two stages: 1) D-structure is generated according to the rules of X-bar syntax, 2) the base generated tree is mapped to S-structure by a series of transformations, or movements, in which structures move around the tree leaving indexed traces (1).
(1) [XP [] [X' [X] [B_i]]] ==move==> [XP [B_i] [X' [X] [t_i]]]
Minimalism formalizes movement differently, making it a special kind of structure building, and eliminating the need for an intermediate level of representation. The structure-building operation, Merge (2), takes two trees a and b as input, and gives back a new tree c with a and b as sisters and a new node Z immediately dominating both a and b (and no other node).
(2) Merge(a,b) = [Z a b]
Merge simulates movement when the input a is actually contained within input b, giving a structure with two copies of a, one c-commanding the other. This is called Internal Merge (3). Following Internal Merge, the lower copy is (generally) unpronounced, taking the place of the trace in Government and Binding. Unpronounced copies can be noted in angle brackets: .
(3) Merge(a, [B [C] a]) = [Z a [B [C] ]]
Crucially, the example of Internal Merge (and all cases of Internal Merge) grows the tree, adding a new node Z. This means that in Minimalism movement happens before a complete structure (like D-structure) has been built.