Skip to main content

MyWeb Tutorials: Git (Version Control)

If you are planning to use GIT, then you need to consider our GitLab server is the source of truth for your website code. You should write and edit your code locally on your own computer using any editor or IDE (such as VS Code). Your local project must be connected to gitlab.cs.uwindsor.ca, where you commit and push your changes. Once your code is pushed to GitLab, you then log in to MyWeb (DirectAdmin) and use Fetch followed by Deploy to publish the latest version of your code to the web server. Do not edit files directly in MyWeb using File Manager or FTP after Git is enabled, as those changes will be overwritten on the next deploy.

 Summary of Workflow:

    Edit locally on your computer Commit & push to GitLab Fetch & Deploy to MyWeb

    First-Time Setup (Do Once)

      Create an SSH key on the student’s local computer Add the local SSH key to GitLab (gitlab.cs.uwindsor.ca) Configure your IDE (e.g., VS Code) to use GitLab Create a new project on GitLab and copy the SSH remote URL Initialize the local project and connect it to the GitLab repository If code already exists on MyWeb, import it into the local project Commit and push the initial codebase to GitLab Create a separate SSH key in MyWeb (DirectAdmin) for deployment Add the MyWeb public SSH key to GitLab Initialize and connect the Git repository in MyWeb Perform the first Fetch and Deploy from GitLab to MyWeb

       

      Daily / Ongoing Workflow

        Edit code locally on the student’s computer Commit and push changes to GitLab Log in to MyWeb (DirectAdmin) Fetch updates from GitLab Deploy the latest code to the website
        1. Create an SSH key on the student’s local computer
          SSH keys are used to connect your computer to GitLab securely If you already have an SSH key, you may reuse it For simplicity and clarity, it is recommended to create a new SSH key specifically for GitLab

          Windows (Windows Terminal / PowerShell / Git Bash)

            Open Windows Terminal, PowerShell, or Git Bash Generate a new SSH key:

            ssh-keygen -t ed25519 -C "yourusername@gitlab.cs.uwindsor.ca"

              When prompted:
                File location: press Enter to accept default
                (or use gitlab_cs if you want a dedicated key)
                Passphrase: optional (press Enter to skip) Start the SSH agent:

                eval "$(ssh-agent -s)"

                  Add the key to the agent:

                  ssh-add ~/.ssh/id_ed25519

                  (or the filename you chose)

                   

                  macOS / Linux

                    Open Terminal Generate a new SSH key:

                    ssh-keygen -t ed25519 -C "yourusername@gitlab.cs.uwindsor.ca"

                      When prompted:
                        File location: press Enter to accept default Passphrase: optional (press Enter to skip) Start the SSH agent:

                        eval "$(ssh-agent -s)"

                          Add the key to the agent:

                          ssh-add ~/.ssh/id_ed25519

                           

                          Verify the Key Was Created (All Systems)

                            List SSH keys:

                            ls ~/.ssh

                              You should see: id_ed25519 id_ed25519.pub

                              Notes for Students:

                                .pub file = public key (safe to share) non-.pub file = private key (never share) Public key will be added to GitLab in the next step You do not need to repeat this step unless you change computers

                                 


                                 

                                 

                                2. Add the SSH Key to GitLab (gitlab.cs.uwindsor.ca)

                                  Open GitLab in your browser: https://gitlab.cs.uwindsor.ca Log in with your CS credentials Open User Settings Go to SSH Keys

                                  Copy Your Public Key (from your computer)

                                    Display the public key:

                                    cat ~/.ssh/id_ed25519.pub

                                    (If you used a different filename, replace id_ed25519 accordingly.)

                                      Select and copy the entire output (starts with ssh-ed25519)

                                      Add the Key in GitLab

                                        Paste the key into the Key field (Optional) Set a descriptive Title (e.g., Laptop – CS GitLab) Click Add key

                                        Quick Verification (Optional but Recommended)

                                          Test the SSH connection:

                                          ssh -T git@gitlab.cs.uwindsor.ca

                                            You should see a success message indicating authentication worked

                                            Notes for Students

                                              You can add multiple SSH keys to the same GitLab account (one per device) This key is for your local computer only Do not upload private keys (id_ed25519)—only the .pub file

                                               


                                               

                                               

                                              3. Configure Your IDE (VS Code) to Use GitLab

                                                Install Visual Studio Code if it is not already installed Ensure Git is installed on your system and available in your terminal Open VS Code

                                                Verify Git Is Detected by VS Code

                                                  Open the integrated terminal in VS Code: View → Terminal Check Git availability:

                                                  git --version

                                                    If Git is detected, VS Code will automatically enable source control features

                                                     

                                                    Configure VS Code to Use Your SSH Key

                                                      Ensure the SSH agent is running (from earlier step) Confirm your SSH key is loaded:

                                                      ssh-add -l

                                                        You should see your id_ed25519 (or chosen key name)

                                                        VS Code uses the system SSH configuration automatically—no extra setup is required if SSH works in the terminal.

                                                         

                                                        (Optional but Recommended) Configure Git Identity

                                                          Set your name and email (used in commits):

                                                          git config --global user.name "Your Full Name"

                                                          git config --global user.email "yourusername@uwindsor.ca"

                                                           

                                                          (Optional) Test GitLab Access from VS Code

                                                            From the VS Code terminal, test SSH:

                                                            ssh -T git@gitlab.cs.uwindsor.ca

                                                              A success message confirms VS Code can authenticate with GitLab

                                                               

                                                              Notes for Students

                                                                VS Code does not store your SSH key; it uses the system SSH agent If Git works in the terminal, it will work in VS Code You only need to do this setup once per computer

                                                                 


                                                                 

                                                                 

                                                                4. Create a Project on GitLab and Get the SSH Remote URL

                                                                  Open GitLab in your browser: https://gitlab.cs.uwindsor.ca  Log in with your CS credentials Click New Project Choose Create blank project

                                                                  Project Setup

                                                                    Enter a Project name (e.g., myweb-project) Leave Visibility as default (Private) Click Create project

                                                                    Get the SSH Remote URL

                                                                      After the project is created, open the project page Click Code (or Clone) Select SSH Copy the SSH URL, which looks like:

                                                                      git@gitlab.cs.uwindsor.ca:yourusername/myweb-project.git

                                                                       

                                                                      Notes for Students

                                                                        Always use the SSH URL, not HTTPS This URL will be used to connect:
                                                                          Your local project Your MyWeb deployment You only create the GitLab project once

                                                                           


                                                                           

                                                                           

                                                                          5. Initialize the Local Project and Push Code to GitLab

                                                                          This step connects your local code to the GitLab repository you just created.

                                                                           

                                                                          If You Are Starting with New Code (No Existing MyWeb Files)

                                                                            Open a terminal inside your project folder Initialize Git:

                                                                            git init

                                                                              Add the GitLab remote (use the SSH URL you copied):

                                                                              git remote add origin git@gitlab.cs.uwindsor.ca:yourusername/myweb-project.git

                                                                                Add all files:

                                                                                git add .

                                                                                  Commit the initial version:

                                                                                  git commit -m "Initial commit"

                                                                                    Push to GitLab:

                                                                                    git branch -M main

                                                                                    git push -u origin main


                                                                                    If Code Already Exists on MyWeb (Common Case)

                                                                                      First, make sure your local project folder contains the files from MyWeb (public_html)
                                                                                        Download them from MyWeb (zip or File Manager) Or copy them manually Then, inside that folder:

                                                                                        git init

                                                                                        git remote add origin git@gitlab.cs.uwindsor.ca:yourusername/myweb-project.git

                                                                                        git add .

                                                                                        git commit -m "Initial import from MyWeb"

                                                                                        git branch -M main

                                                                                        git push -u origin main

                                                                                        ✔ GitLab now contains the full website code
                                                                                        ✔ GitLab becomes the source of truth

                                                                                         

                                                                                        Notes for Students

                                                                                          This initialization happens once After this step:
                                                                                            Do not treat MyWeb as the main copy All future changes start locally

                                                                                             


                                                                                              

                                                                                             

                                                                                            6. Create a Deployment SSH Key in MyWeb (DirectAdmin)

                                                                                            This key is used only by MyWeb to fetch and deploy code from GitLab.
                                                                                            It is separate from the SSH key on your local computer.

                                                                                              Log in to MyWeb (DirectAdmin) Go to Git → Manage SSH Keys Click Create Key

                                                                                              Fill in the fields

                                                                                                Key ID: gitlab (or any short name) Authorize: ✔ checked Comment: yourusername@gitlab.cs.uwindsor.ca Key Size: 2048 Password: leave empty Click Create

                                                                                                Copy the Public Key

                                                                                                  After creation, copy the public key (the .pub content) You will add this key to GitLab in the next step

                                                                                                  Notes for Students

                                                                                                    This key stays on the server Do not download or reuse it on your computer One MyWeb key can be reused for multiple repositories

                                                                                                     


                                                                                                      

                                                                                                     

                                                                                                    7. Add the MyWeb SSH Key to GitLab

                                                                                                    This step authorizes MyWeb to access your GitLab repository for Fetch and Deploy.

                                                                                                      Open GitLab in your browser: https://gitlab.cs.uwindsor.ca  Log in with your CS credentials Go to User Settings Select SSH Keys

                                                                                                      Add the MyWeb Public Key

                                                                                                        Paste the public SSH key you copied from MyWeb Set a clear Title (e.g., MyWeb Deployment Key) Click Add key

                                                                                                        Notes for Students

                                                                                                          This key is server-side only (deployment) It is different from your local computer’s SSH key GitLab allows multiple SSH keys per account

                                                                                                           


                                                                                                            

                                                                                                           

                                                                                                          8. Initialize and Connect the Repository in MyWeb (DirectAdmin)

                                                                                                            Log in to MyWeb (DirectAdmin) Go to Git Click Initialize Repository

                                                                                                            Fill in the Repository Details

                                                                                                              Domain: select your MyWeb domain (auto-filled) Name: any label (e.g., myweb-site) Remote: paste the SSH URL of your GitLab repository git@gitlab.cs.uwindsor.ca:yourusername/myweb-project.git Keyfile: select or enter the path to the private key created in MyWeb .ssh/gitlab

                                                                                                              (or the exact key name you chose)

                                                                                                                Click Create Repository

                                                                                                                What This Does

                                                                                                                  Creates a local Git repository on MyWeb Links it to GitLab using SSH Prepares MyWeb for deployment (no files are changed yet)

                                                                                                                   

                                                                                                                  Notes for Students

                                                                                                                    Always use the SSH remote, not HTTPS Do not include full /home/... paths in the Keyfile field This setup is done once per project

                                                                                                                     


                                                                                                                     

                                                                                                                     

                                                                                                                    9. Fetch and Deploy the Code to MyWeb

                                                                                                                    This step publishes your GitLab code to your MyWeb website.

                                                                                                                     

                                                                                                                    Fetch From GitLab

                                                                                                                      In MyWeb (DirectAdmin), go to Git Locate your repository Click the three dots (⋯) next to it Click Fetch

                                                                                                                      What Fetch does:

                                                                                                                        Connects to GitLab Retrieves the latest commits and branch information Does not change your website files

                                                                                                                         

                                                                                                                        Deploy to MyWeb

                                                                                                                          Click the three dots (⋯) again Click Deploy

                                                                                                                          What Deploy does:

                                                                                                                            Checks out the latest commit (usually from main) Copies files into: public_html/ Makes the code live on your website

                                                                                                                             

                                                                                                                            Verify Deployment

                                                                                                                              Open File Manager Confirm files appear in public_html Visit your website in a browser: https://yourproject.myweb.cs.uwindsor.ca/

                                                                                                                               

                                                                                                                              Important Notes for Students

                                                                                                                                Always Fetch before Deploy Do not edit files in File Manager or via FTP after Git is enabled Manual changes will be overwritten on the next deploy

                                                                                                                                 

                                                                                                                                ✅ Setup Complete

                                                                                                                                You have now:

                                                                                                                                  Connected your local computer to GitLab Connected MyWeb to GitLab Deployed your site using Git

                                                                                                                                   


                                                                                                                                   

                                                                                                                                  Daily Workflow Reminder

                                                                                                                                    Edit code locally Commit and push to GitLab Fetch and Deploy from MyWeb