WEBVTT

1
00:00:00.000 --> 00:00:03.379
The local history from the previous
module is useful on its own.

2
00:00:03.820 --> 00:00:07.128
Now we will connect it to a
private GitHub practice repository.

3
00:00:07.407 --> 00:00:10.611
This lesson stops at a verified
destination so that the next

4
00:00:10.669 --> 00:00:12.957
lesson can perform and
inspect the transfer.

5
00:00:13.131 --> 00:00:16.800
The key habit is to check the
actual owner and URL before sending

6
00:00:16.869 --> 00:00:20.596
project history anywhere. Git
and GitHub have different roles.

7
00:00:20.921 --> 00:00:24.753
Git records and compares versions
locally. GitHub is a hosting

8
00:00:24.799 --> 00:00:28.445
and collaboration service that can
hold a remote copy of those commits.

9
00:00:28.886 --> 00:00:32.195
A local commit does not automatically
upload, and signing into

10
00:00:32.253 --> 00:00:35.503
a website does not automatically
synchronize your working folder.

11
00:00:36.107 --> 00:00:39.845
Keeping these actions separate makes
the workflow easier to understand.

12
00:00:40.287 --> 00:00:43.979
Open GitHub in the browser and
verify the account you intend to use.

13
00:00:44.420 --> 00:00:46.893
Choose a neutral practice repository name.

14
00:00:47.334 --> 00:00:52.001
Private visibility satisfies this course;
there is no need to publish your project.

15
00:00:52.442 --> 00:00:55.798
Inspect the owner and visibility
controls before creation.

16
00:00:56.309 --> 00:01:00.244
If you have access to several accounts
or organizations, this is the point

17
00:01:00.268 --> 00:01:03.669
where an unnoticed selection can
send work to the wrong place.

18
00:01:04.180 --> 00:01:08.383
Your local project already contains a
baseline and a meaningful label change.

19
00:01:08.766 --> 00:01:12.911
Create the remote without a generated
README, license, or ignore file.

20
00:01:13.422 --> 00:01:16.812
The README and ignore rules
already exist in local history;

21
00:01:17.195 --> 00:01:21.491
licensing is a separate deliberate
choice. Creating separate content

22
00:01:21.549 --> 00:01:25.752
on the server would produce another
initial history that needs reconciliation.

23
00:01:26.565 --> 00:01:30.419
Avoiding that unnecessary branch of
work keeps the first synchronization

24
00:01:30.535 --> 00:01:34.065
straightforward. If you
already initialized the remote,

25
00:01:34.309 --> 00:01:36.898
do not panic and do not
force-push immediately.

26
00:01:37.339 --> 00:01:40.020
Preserve both states
and inspect what exists.

27
00:01:40.403 --> 00:01:43.840
For a disposable practice
exercise, another empty private

28
00:01:43.875 --> 00:01:47.334
repository with a new name can
be a simple deliberate restart.

29
00:01:47.845 --> 00:01:51.433
For a real project, the contents
may matter and need integration.

30
00:01:51.758 --> 00:01:54.684
The correct remedy depends on
what you intend to preserve.

31
00:01:55.125 --> 00:01:58.225
Return to PowerShell in the
local practice repository.

32
00:01:58.550 --> 00:02:00.814
Check the current location, Git status,

33
00:02:00.884 --> 00:02:03.902
and branch name. Confirm that
you are looking at the history

34
00:02:03.960 --> 00:02:07.768
you reviewed in the previous module.
A browser tab showing the right

35
00:02:07.826 --> 00:02:11.391
remote is not enough if the terminal
is inside a different project.

36
00:02:11.669 --> 00:02:16.441
We verify both ends of the connection.
Run Git remote with the verbose option.

37
00:02:16.720 --> 00:02:20.179
If the project has no configured
remotes, the output may be empty.

38
00:02:20.505 --> 00:02:23.221
If a remote exists, read
its name and address.

39
00:02:23.465 --> 00:02:26.182
Origin is only a conventional
label stored locally.

40
00:02:26.507 --> 00:02:28.817
It does not mean the
server is correct, safe,

41
00:02:28.898 --> 00:02:31.267
current, or owned by the
account you expected.

42
00:02:31.592 --> 00:02:34.622
The actual URL carries the
destination information.

43
00:02:34.947 --> 00:02:38.314
Copy the HTTPS address from
the new private repository

44
00:02:38.372 --> 00:02:42.226
page. Use it with the remote-add
command shown in the written lesson.

45
00:02:42.737 --> 00:02:46.290
Replace the example owner with the
real selected account rather than

46
00:02:46.348 --> 00:02:48.461
copying the book's demonstration address.

47
00:02:48.972 --> 00:02:53.360
Then run the verbose remote inspection
again and read the result before any push.

48
00:02:53.871 --> 00:02:58.352
If Git reports that origin already
exists, adding it again is not a repair.

49
00:02:58.735 --> 00:03:00.523
Inspect the existing value.

50
00:03:00.802 --> 00:03:03.855
If it is wrong and you have
identified the correct destination,

51
00:03:04.030 --> 00:03:06.804
use the set-url operation deliberately.

52
00:03:07.315 --> 00:03:10.822
Record what changed. If it is
already correct, leave it alone.

53
00:03:11.263 --> 00:03:15.210
Avoid creating several similarly named
remotes just to get past an error

54
00:03:15.280 --> 00:03:19.355
you have not understood. Never
put a token into the remote URL.

55
00:03:19.738 --> 00:03:24.359
Addresses can appear in command output,
shell history, logs, and screenshots.

56
00:03:24.742 --> 00:03:28.516
Use the supported credential flow
for authentication. The exercise's

57
00:03:28.585 --> 00:03:32.521
evidence should show a normal repository
address without any secret material.

58
00:03:32.904 --> 00:03:36.550
A credential embedded in a URL
is not a more reproducible setup;

59
00:03:36.875 --> 00:03:39.743
it is private information in
a place likely to be copied.

60
00:03:40.126 --> 00:03:42.959
Commit identity and
authentication are also separate.

61
00:03:43.400 --> 00:03:46.094
The author name and email
recorded in a commit describe

62
00:03:46.117 --> 00:03:49.101
who is credited for that change.
They do not grant permission

63
00:03:49.159 --> 00:03:53.547
to a private repository. Your browser may
be signed into the intended account while

64
00:03:53.570 --> 00:03:57.402
the Git credential helper has a different
identity. An actual Git operation

65
00:03:57.448 --> 00:04:01.279
will test that access in the next lesson.
When authentication is requested,

66
00:04:01.395 --> 00:04:04.518
complete the private sign-in
process and return to the project.

67
00:04:04.901 --> 00:04:09.011
The course recording can show the safe
entry screen and neutral post-login state

68
00:04:09.127 --> 00:04:10.787
with credential entry omitted.

69
00:04:11.229 --> 00:04:15.141
Do not show passwords, recovery codes,
or a password-manager surface.

70
00:04:15.582 --> 00:04:18.474
A human login challenge
is a private setup action,

71
00:04:18.718 --> 00:04:21.655
not a reason to invent a
successful result for the lesson.

72
00:04:21.980 --> 00:04:26.160
Before transferring history, inspect
the tracked files and recent commits.

73
00:04:26.438 --> 00:04:28.958
The repository should
contain the intended source,

74
00:04:29.132 --> 00:04:32.150
scripts, documentation,
and synthetic fixtures.

75
00:04:32.475 --> 00:04:35.436
A private repository still
receives whatever you upload.

76
00:04:35.680 --> 00:04:38.745
Also remember that deleting a
sensitive file from the current

77
00:04:38.780 --> 00:04:41.961
tree does not necessarily
remove it from earlier commits.

78
00:04:42.344 --> 00:04:45.874
Our supplied practice history is
deliberately generic and separate

79
00:04:45.897 --> 00:04:49.136
from authoring history. Write
a short destination record.

80
00:04:49.380 --> 00:04:52.352
Include the intended repository,
private visibility,

81
00:04:52.433 --> 00:04:56.345
current local branch, and the inspected
remote address without credentials.

82
00:04:56.589 --> 00:04:59.143
State whether authentication
has been exercised yet.

83
00:04:59.527 --> 00:05:02.383
Do not label configuration
as successful transport.

84
00:05:02.894 --> 00:05:05.622
That final distinction lets
the next lesson add real

85
00:05:05.703 --> 00:05:08.768
push and clone evidence instead
of repeating an assumption.

86
00:05:09.279 --> 00:05:13.691
One useful final inspection is to read
the repository address from right to left:

87
00:05:14.074 --> 00:05:16.338
repository name, owner, then host.

88
00:05:16.547 --> 00:05:19.879
This is not a new security mechanism;
it is a deliberate way to catch

89
00:05:19.925 --> 00:05:24.465
a familiar-looking typo. Compare it with
the actual browser page you just created.

90
00:05:24.906 --> 00:05:27.878
A neutral practice name can
resemble an earlier exercise,

91
00:05:28.122 --> 00:05:31.071
so also check whether the
remote is empty as intended.

92
00:05:31.768 --> 00:05:35.065
Configuration should be established
by those concrete observations

93
00:05:35.123 --> 00:05:36.644
before transport begins.

94
00:05:37.248 --> 00:05:41.602
For your exercise, explain why origin's
name is insufficient and how commit

95
00:05:41.671 --> 00:05:45.885
identity differs from access. You are
ready to advance when both the local

96
00:05:45.943 --> 00:05:48.776
history and remote destination
are the ones you intended.

97
00:05:49.287 --> 00:05:53.594
We will then push, inspect the hosted
commit, clone into a second folder,

98
00:05:53.687 --> 00:05:57.356
and test whether the written setup is
sufficient to reproduce the project.
