https://zeus.phys.uconn.edu/wiki/api.php?action=feedcontributions&user=Mcintyre&feedformat=atomUConn PAN - User contributions [en]2024-03-28T08:38:09ZUser contributionsMediaWiki 1.35.7https://zeus.phys.uconn.edu/wiki/index.php?title=GitHub&diff=36418GitHub2023-06-05T21:21:38Z<p>Mcintyre: /* Setup Option #2 (Local computer &#x2192; GitHub) */</p>
<hr />
<div><font size="3">GitHub is a web-based platform that provides hosting of coding repositories. It offers a centralized location for people to store, manage, and allow collaboration on their code. It is especially useful for version control and project tracking. The following information is geared towards linking gluey annex repositories with GitHub, but can easily be used to link your home computer to a GitHub repository. This wiki page is being updated as the author learns how to use GitHub, so if you know a better, more efficient way to accomplish a task then by all means please do it that way (... and add an addendum to this page if you have a login).</font><br />
<br />
<br />
== <i>Setup Option #1 (GitHub &#x2192; local computer)</i> ==<br />
Adding a repository in your GitHub account to your local computer (e.g. cloning).<br />
<ol><br />
<!-- Step 1 --><br />
<li>Sign up for a GitHub account by going to the [https://github.com/ GitHub website] and create a new account<br><i>- If you do not make your email address public you will have problems pushing your code later</i></li><br><br />
<br />
<!-- Step 2 --><br />
<li>Once you're logged in, click on the "+" sign at the top-right corner of the GitHub homepage and select "New repository" to create a new repository. Give your repository a name and provide a description.</li><br />
<ul><br />
<li>The repository name will be your folder name on gluey (see below)</li><br />
<li>Repository description is optional</li><br />
<li>Repository Setting:</li><br />
<ul><br />
<li>Private vs. Public</li><br />
<li>License (optional) - MIT License is well known and least restrictive</li><br />
<li>You can add a README file</li><br />
<li>You can also rename the main branch (this must be done before the repository is created, changing the name will change all subsequent repositories that are made in the future)</li><br />
<li>And more ...</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 3 --><br />
<li>Once the repository is setup online, add a Personal Access Token</li><br />
<ul><br />
<li>At the top-right of the GitHub website click on the pull-down and select "Settings"</li><br />
<li>On the left select "Developer settings" located at the bottom </li><br />
<li>Then on the left select "Personal access tokens"</li><br />
<li>Select "Fine-grained tokens" or "Tokens (classic)", I did the prior one</li><br />
<ul><br />
<li>For the Fine-grained token you will need to select which permissions you'd like to allow (not sure about the classic token)</li><br />
<li>Select a period for the token to be valid, upto 90 days maximum (I believe)</li><br />
<li>Once complete it will provide you with the token you can copy, this will be used in place of your password later</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 4 --><br />
<li>Clone your repository</li><br />
<ul><br />
<li>Log in to gluey using a VNC and navigate to the location in your annex where you'll be working</li><br />
<ul><br />
<li>You can do the same for your home computer, you'll just need to open a terminal or command prompt and navigate to the directory where you want to store your code</li><br />
</ul><br />
<li>Use the command:<br><br />
<b>git clone https&#58;&#47;&#47;github&#46;com&#47;<i>your-username</i>&#47;<i>your-repository</i>&#46;git</b><br> <br />
<i>&ensp; - Make sure to replace "your-username" with your GitHub username and "your-repository" with the name of your repository</i></li><br />
<li>You will now need to login. Use your <u>GitHub Username</u>, but make sure to use the <u>Personal Access Token</u> you created earlier and <b><u>NOT</u></b> your GitHub password</li><br />
</ul><br><br />
<br />
<!-- Step 5 --><br />
<li>At this point you should have a new folder in your annex with the name of your GitHub repository</li><br />
<ul><br />
<li>Confirm that the remote repository is correctly added, use the command:<br> <br />
<b>git remote -v</b><br></li><br />
<li>If needed, you can link the local repository to the remote repository using:<br> <br />
<b>git remote add origin <i>repository-url</i></b><br></li><br />
</ul><br><br />
<br />
<!-- Step 6 --><br />
<li>To switch to or determine a branch in Git, you can use the git checkout command:<br />
<ul><br />
<li>Determine the name of the branch you want to switch to via:<br> <br />
<b>git branch</b><br> <br />
<i>&ensp; - It will show all branches available and indicate your current branch with a * </i><br></li><br />
<li>Create a new branch using: <br> <br />
<b>git branch <i>new-branch-name</i></b> </li><br />
<li>Switch to that branch and work in it via:<br><br />
<b>git checkout <i>new-branch-name</i></b> <br></li><br><br />
<li>The two steps above can be combined:<br> <br />
<b>git checkout -b <i>new-branch-name</i></b> <br><br />
&ensp; <i>- This will <u>create and switch</u> to the new branch in one step</i></li><br><br />
</ul><br />
<br />
<!-- Step 7 --><br />
<li>Add files/folders to your directory</li><br><br />
<br />
<!-- Step 8 --><br />
<li>When you're ready to save, make sure you are in the root directory of your repository or the directory where the new folder you want to save is located. Then use the git add command to add the new folder and its contents to <br />
the staging area. Run the following command:<br><br />
<b>git add <i>folder-name</i></b><br><br />
<i>&ensp;- Adds the specified file or folder</i><br><br />
&emsp; OR <br><br />
<b>git add .</b> <br><br />
<i>&ensp;- Adds all new files and folders in the current directory recursively, does not add higher directory information</i><br><br />
&emsp; OR <br><br />
<b>git add -A</b> <br><br />
<i>&ensp;- Adds all files: new, modified, and deleted files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br />
&emsp; OR <br><br />
<b>git add -u</b> <br><br />
<i>&ensp;- Adds modified and deleted files only. Excludes new files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br><br />
For a more detailed description of <i>git add</i> go to: https://github.com/git-guides/git-add</li><br><br />
<br />
<!-- Step 9 --><br />
<li>Once the new folder/file is added to the staging area, you can commit the changes using the git commit command:<br> <b>git commit -m "<i>Commit message</i>"</b> <br><br />
<i>&ensp; - Replace Commit message with a descriptive message summarizing the changes you made. Keep " " around your message</i></li><br><br />
<br />
<!-- Step 10 --><br />
<li>After committing the changes (on your local machine), you can push them to the remote repository on GitHub using the git push command:<br> <br />
<b>git push origin <i>branch-name</i></b><br><br />
<i>&ensp; - Replace branch-name with the name of the branch you want to push to (e.g., main)</i><br><br />
<i>&ensp; - You will need to login with your Username and Personal Access Token</i></li><br><br />
</ol><br />
<br />
== <i>Setup Option #2 (Local computer &#x2192; GitHub)</i> ==<br />
Adding a repository from your local computer to GitHub<br />
<ol><br />
<!-- Step 1 --><br />
<li>On your local computer, initialize the folder you want to adds as a repository:<br><br />
&ensp; - Use <b>cd</b> to navigate to the folder that contains the work you'd like to track/backup<br><br />
&ensp; - Type <b>git init</b> to initialize the folder for Git tracking<br><br />
&ensp; - (<i>optional step</i>) Type <b>touch .gitignore</b> to create a blank file in that folder, which can later be modify to specify files or types of files you don't want to track </li><br><br />
<br />
<!-- Step 2 --><br />
<li>Go to https://github.com/ , login, and create a repository as described above. Name the repository the same as your working folder you did the git init command in</li><br><br />
<br />
<!-- Step 3 --><br />
<li>On your local computer, link your working folder to the GitHub repsoitory:<br><br />
&ensp; - Type <b>git remote add origin <i>github-repository-url</i></b><br><br />
&ensp; &ensp; <i>github-repository-url</i> can be found online: <br><br />
&ensp; &ensp; &ensp; &ensp; - In your repository folder click on the green [<> Code] button then under the Local tab you'll see Clone HTTPS <br><br />
&ensp; &ensp; &ensp; &ensp; - Click the copy button to paste the address into the line of code above</li><br><br />
<br />
<!-- Step 4 --><br />
<li>On your local computer, merge the two repositories (local and online):<br><br />
&ensp; - Type <b>git pull origin main</b><br><br />
&ensp; &ensp; This assumes the GitHub branch is named <i>main</i> in the repository you created online </li><br><br />
<br />
<!-- Step 5 --><br />
<li>On your local computer, add files to track:<br><br />
<b>git add <i>folder-name</i></b><br><br />
&ensp; <i> - Adds the specified file or folder</i><br><br />
&emsp; OR <br><br />
<b>git add .</b> <br><br />
&ensp; <i> - Adds all new files and folders in the current directory recursively, does not add higher directory information</i><br><br />
&emsp; OR <br><br />
<b>git add -A</b> <br><br />
&ensp; <i> - Adds all files: new, modified, and deleted files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br />
&emsp; OR <br><br />
<b>git add -u</b> <br><br />
&ensp; <i> - Adds modified and deleted files only. Excludes new files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br><br />
For a more detailed description of <i>git add</i> go to: https://github.com/git-guides/git-add</li><br><br />
<br />
<!-- Step 6 --><br />
<li>On your local computer, commit that add:<br><br />
&ensp; - Type <b>git commit -m "Message here"</b><br><br />
&ensp; &ensp; Change <i>Message here</i> to a brief description of the reason for the commit (ex: Initial commit) <br><br />
&ensp; &ensp; Make sure to keep "" </li><br><br />
<br />
<!-- Step 7 --><br />
<li>On your local computer, change (if required) the branch name to the name listed in the online repository:<br><br />
&ensp; - Typing <b>git branch</b> tells you the name(s) of the branch(es) with the current one having a * next to it<br><br />
&ensp; - If you need to modify your local computer's branch name use <b>git branch -M main</b> where <i>main</i> is the name to change the branch to<br><br />
&ensp; - Use <b>git branch</b> to verify the change </li><br><br />
<br />
<!-- Step 8 --><br />
<li>On your local computer, push your commit:<br><br />
&ensp; - Type <b>git push -u origin main</b><br><br />
&ensp; &ensp; You'll need to enter your GitHub profile name and your Personal Access Token to complete the push<br><br><br />
&ensp; - The purpose of the <i>-u</i> flag is to establish an upstream relationship between the local branch and the specified remote branch<br><br />
&nbsp; &nbsp; This is typically done on the initial push to a remote repository. After that, you don't need to use the -u flag again for subsequent pushes to the same branch </li><br><br />
<br />
<!-- Step 9 --><br />
<li>At this point your online GitHub repository should be the same as the working folder on your local computer <br><br />
&emsp; &nbsp; You can now continue to code and push/pull to GitHub as needed to track/update changes. Good luck, if it doesn't work don't blame me ... I only work here :) </li><br><br />
</ol><br />
<br />
== <i>Ignoring Files (.gitignore)</i> ==<br />
There are various reasons to not want to track/push files. The following situation helps when you're having trouble pushing files due to them being too big (>50 MB, GitHub max) .<br />
<ol><br />
<li><u>Find those problem files</u>: <br><br />
&ensp; - Ensure you're in the directory of interest (use <b>cd </b> command as needed) <br><br />
&ensp; - Type <b>find . -type f -size +50M </b><br><br />
&ensp; - This will list files that are above GitHub's 50 MB limit </li><br><br />
<br />
<li><u>Create a .gitignore file</u>: <br><br />
&ensp; - To create one use the command <b>touch .gitnore </b><br><br />
&ensp; &ensp; Make sure you are in the root folder of your repository on your local computer when you use this command <br><br />
&ensp; &ensp; <u>Hint</u> - The root folder is named the same as your repository on GitHub </li><br><br />
<br />
<li><u>Use your favorite text editor to open the file (i.e. Vim, Notepad++, etc.)</u>: <br><br />
&ensp; - Enter the oversized files from above into the girignore file<br><br />
&ensp; &ensp; Make sure to remove the <b>.</b> if you decide to copy/paste <br><br />
<i><u>Example</u>:</i></li><br />
<br />
<!-- Example --><br />
<pre># Remember: A line that follows # is a comment.<br />
#<br />
# To ignore a file update this file (.gitignore) then add, commit, and push this file.<br />
# Do this BEFORE any other pushes so the rule will be in effect.<br />
<br />
# These files are above GitHub's recommended file size (50 MB). SUBFOLDER/FILE<br />
MonteCarlo/fermi.txt<br />
Examples/mctuple.root<br />
Examples/mctuple.hbook<br />
Examples/ntuple.root<br />
Examples/log<br />
Examples/omega2p_sim_1.itape<br />
Examples/ntuple.hbook<br />
<br />
# These are object files. Code that is compiled to machine code, no need fo me to saved/tracked in GitHub.<br />
# * is a wild card, so anything that has .o at the end is ignored using *.o, while *.o.* says ignore anything that has .o. within the name. <br />
*.o<br />
*.o.*<br />
</pre><br><br />
<br />
<li><u>Ignore already checked in files</u>: <br><br />
&ensp; - Since you already tried and failed to fully push those file, you'll need to untrack them <br><br />
&ensp; - From your terminal type <b>git rm --cached FILENAME </b><br><br />
&ensp; &ensp; Hint - You can copy/paste from the find results <b>git rm --cached /SUBFOLDER/FILENAME </b><br><br />
&ensp; - Do this for all files that require it before proceeding </li><br><br />
<br />
<li><u>Add, commit, and push the .gitignore file</u>: <br><br />
&ensp; - Add the gitignore file using <b>git add .gitignore </b> <br><br />
&ensp; - Commit the file using <b>git commit -m "Files to ignore" </b> <br><br />
&ensp; - Push the commit using <b>git push origin main </b> <br><br />
&ensp; &ensp; Now subsequent pushes will know to ignore those files or types of files </li> <br><br />
<br />
== <u><i>Extras</i></u> ==<br />
<ul><br />
<!-- 0 --><br />
<li>For more information on common git commands, check out the links in the header at the top of the Git Guides webpage (https://github.com/git-guides/git-add)<br><br />
&ensp; - This site is a good starting point for common questions</li><br><br />
<br />
<!-- 1 --><br />
<li><b>git status</b><br><br />
&ensp; - This command shows the branch you're on, what files are in the working or staging directory, and other important information<br><br />
&emsp; <u>Example</u>:<br><br />
<pre> mcintyre@gluey/nfs/direct/annex/mcintyre/GitRepo/Radphi_pi02gp/RUN0<br />
$ git status<br />
# On branch PI0<br />
# Untracked files:<br />
# (use &quot;git add &lt;file&gt;...&quot; to include in what will be committed)<br />
#<br />
# STEP6/<br />
# STEP7/<br />
nothing added to commit but untracked files present (use &quot;git add&quot; to track)<br />
</pre><br />
</li><br><br />
<br />
<!-- 2 --><br />
<li><b>git reset</b><br><br />
&ensp; - This command unstages all changes (e.g. all <i>git add</i> performed before a <i>git commit</i>)<br></li><br />
<b>git reset <i>file-name</i></b><br><br />
&ensp; - This command undoes <i>git add</i> for uncommited changes to file <i>file-name</i><br><br><br />
<br />
<!-- 3 --><br />
<br />
<br />
</li><br />
<br />
<br />
<br />
<br />
<!-- For spacing: &nbsp; OR <br> &ensp; OR <br> &emsp; OR <br> --><br />
<!-- Smaller indent to Larger indent --></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=GitHub&diff=36417GitHub2023-06-05T20:53:04Z<p>Mcintyre: /* Ignoring Files (.gitignore) */</p>
<hr />
<div><font size="3">GitHub is a web-based platform that provides hosting of coding repositories. It offers a centralized location for people to store, manage, and allow collaboration on their code. It is especially useful for version control and project tracking. The following information is geared towards linking gluey annex repositories with GitHub, but can easily be used to link your home computer to a GitHub repository. This wiki page is being updated as the author learns how to use GitHub, so if you know a better, more efficient way to accomplish a task then by all means please do it that way (... and add an addendum to this page if you have a login).</font><br />
<br />
<br />
== <i>Setup Option #1 (GitHub &#x2192; local computer)</i> ==<br />
Adding a repository in your GitHub account to your local computer (e.g. cloning).<br />
<ol><br />
<!-- Step 1 --><br />
<li>Sign up for a GitHub account by going to the [https://github.com/ GitHub website] and create a new account<br><i>- If you do not make your email address public you will have problems pushing your code later</i></li><br><br />
<br />
<!-- Step 2 --><br />
<li>Once you're logged in, click on the "+" sign at the top-right corner of the GitHub homepage and select "New repository" to create a new repository. Give your repository a name and provide a description.</li><br />
<ul><br />
<li>The repository name will be your folder name on gluey (see below)</li><br />
<li>Repository description is optional</li><br />
<li>Repository Setting:</li><br />
<ul><br />
<li>Private vs. Public</li><br />
<li>License (optional) - MIT License is well known and least restrictive</li><br />
<li>You can add a README file</li><br />
<li>You can also rename the main branch (this must be done before the repository is created, changing the name will change all subsequent repositories that are made in the future)</li><br />
<li>And more ...</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 3 --><br />
<li>Once the repository is setup online, add a Personal Access Token</li><br />
<ul><br />
<li>At the top-right of the GitHub website click on the pull-down and select "Settings"</li><br />
<li>On the left select "Developer settings" located at the bottom </li><br />
<li>Then on the left select "Personal access tokens"</li><br />
<li>Select "Fine-grained tokens" or "Tokens (classic)", I did the prior one</li><br />
<ul><br />
<li>For the Fine-grained token you will need to select which permissions you'd like to allow (not sure about the classic token)</li><br />
<li>Select a period for the token to be valid, upto 90 days maximum (I believe)</li><br />
<li>Once complete it will provide you with the token you can copy, this will be used in place of your password later</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 4 --><br />
<li>Clone your repository</li><br />
<ul><br />
<li>Log in to gluey using a VNC and navigate to the location in your annex where you'll be working</li><br />
<ul><br />
<li>You can do the same for your home computer, you'll just need to open a terminal or command prompt and navigate to the directory where you want to store your code</li><br />
</ul><br />
<li>Use the command:<br><br />
<b>git clone https&#58;&#47;&#47;github&#46;com&#47;<i>your-username</i>&#47;<i>your-repository</i>&#46;git</b><br> <br />
<i>&ensp; - Make sure to replace "your-username" with your GitHub username and "your-repository" with the name of your repository</i></li><br />
<li>You will now need to login. Use your <u>GitHub Username</u>, but make sure to use the <u>Personal Access Token</u> you created earlier and <b><u>NOT</u></b> your GitHub password</li><br />
</ul><br><br />
<br />
<!-- Step 5 --><br />
<li>At this point you should have a new folder in your annex with the name of your GitHub repository</li><br />
<ul><br />
<li>Confirm that the remote repository is correctly added, use the command:<br> <br />
<b>git remote -v</b><br></li><br />
<li>If needed, you can link the local repository to the remote repository using:<br> <br />
<b>git remote add origin <i>repository-url</i></b><br></li><br />
</ul><br><br />
<br />
<!-- Step 6 --><br />
<li>To switch to or determine a branch in Git, you can use the git checkout command:<br />
<ul><br />
<li>Determine the name of the branch you want to switch to via:<br> <br />
<b>git branch</b><br> <br />
<i>&ensp; - It will show all branches available and indicate your current branch with a * </i><br></li><br />
<li>Create a new branch using: <br> <br />
<b>git branch <i>new-branch-name</i></b> </li><br />
<li>Switch to that branch and work in it via:<br><br />
<b>git checkout <i>new-branch-name</i></b> <br></li><br><br />
<li>The two steps above can be combined:<br> <br />
<b>git checkout -b <i>new-branch-name</i></b> <br><br />
&ensp; <i>- This will <u>create and switch</u> to the new branch in one step</i></li><br><br />
</ul><br />
<br />
<!-- Step 7 --><br />
<li>Add files/folders to your directory</li><br><br />
<br />
<!-- Step 8 --><br />
<li>When you're ready to save, make sure you are in the root directory of your repository or the directory where the new folder you want to save is located. Then use the git add command to add the new folder and its contents to <br />
the staging area. Run the following command:<br><br />
<b>git add <i>folder-name</i></b><br><br />
<i>&ensp;- Adds the specified file or folder</i><br><br />
&emsp; OR <br><br />
<b>git add .</b> <br><br />
<i>&ensp;- Adds all new files and folders in the current directory recursively, does not add higher directory information</i><br><br />
&emsp; OR <br><br />
<b>git add -A</b> <br><br />
<i>&ensp;- Adds all files: new, modified, and deleted files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br />
&emsp; OR <br><br />
<b>git add -u</b> <br><br />
<i>&ensp;- Adds modified and deleted files only. Excludes new files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br><br />
For a more detailed description of <i>git add</i> go to: https://github.com/git-guides/git-add</li><br><br />
<br />
<!-- Step 9 --><br />
<li>Once the new folder/file is added to the staging area, you can commit the changes using the git commit command:<br> <b>git commit -m "<i>Commit message</i>"</b> <br><br />
<i>&ensp; - Replace Commit message with a descriptive message summarizing the changes you made. Keep " " around your message</i></li><br><br />
<br />
<!-- Step 10 --><br />
<li>After committing the changes (on your local machine), you can push them to the remote repository on GitHub using the git push command:<br> <br />
<b>git push origin <i>branch-name</i></b><br><br />
<i>&ensp; - Replace branch-name with the name of the branch you want to push to (e.g., main)</i><br><br />
<i>&ensp; - You will need to login with your Username and Personal Access Token</i></li><br><br />
</ol><br />
<br />
== <i>Setup Option #2 (Local computer &#x2192; GitHub)</i> ==<br />
Adding a repository from your local computer to GitHub<br />
<ol><br />
<!-- Step 1 --><br />
<li>On your local computer, initialize the folder you want to adds as a repository:<br><br />
&ensp; - Use <b>cd</b> to navigate to the folder that contains the work you'd like to track/backup<br><br />
&ensp; - Type <b>git init</b> to initialize the folder for Git tracking<br><br />
&ensp; - (<i>optional step</i>) Type <b>touch .gitignore</b> to create a blank file in that folder, which can later be modify to specify files or types of files you don't want to track </li><br><br />
<br />
<!-- Step 2 --><br />
<li>Go to https://github.com/ , login, and create a repository as described above. Name the repository the same as your working folder you did the git init command in</li><br><br />
<br />
<!-- Step 3 --><br />
<li>On your local computer, link your working folder to the GitHub repsoitory:<br><br />
&ensp; - Type <b>git remote add origin <i>github-repository-url</i></b><br><br />
&ensp; &ensp; <i>github-repository-url</i> can be found online: <br><br />
&ensp; &ensp; &ensp; &ensp; - In your repository folder click on the green [<> Code] button then under the Local tab you'll see Clone HTTPS <br><br />
&ensp; &ensp; &ensp; &ensp; - Click the copy button to paste the address into the line of code above</li><br><br />
<br />
<!-- Step 4 --><br />
<li>On your local computer, merge the two repositories (local and online):<br><br />
&ensp; - Type <b>git pull origin main</b><br><br />
&ensp; &ensp; This assumes the GitHub branch is named <i>main</i> in the repository you created online </li><br><br />
<br />
<!-- Step 5 --><br />
<li>On your local computer, add files to track:<br><br />
<b>git add <i>folder-name</i></b><br><br />
&ensp; <i> - Adds the specified file or folder</i><br><br />
&emsp; OR <br><br />
<b>git add .</b> <br><br />
&ensp; <i> - Adds all new files and folders in the current directory recursively, does not add higher directory information</i><br><br />
&emsp; OR <br><br />
<b>git add -A</b> <br><br />
&ensp; <i> - Adds all files: new, modified, and deleted files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br />
&emsp; OR <br><br />
<b>git add -u</b> <br><br />
<&ensp; <i> - Adds modified and deleted files only. Excludes new files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br><br />
For a more detailed description of <i>git add</i> go to: https://github.com/git-guides/git-add</li><br><br />
<br />
<!-- Step 6 --><br />
<li>On your local computer, commit that add:<br><br />
&ensp; - Type <b>git commit -m "Message here"</b><br><br />
&ensp; &ensp; Change <i>Message here</i> to a brief description of the reason for the commit (ex: Initial commit) <br><br />
&ensp; &ensp; Make sure to keep "" </li><br><br />
<br />
<!-- Step 7 --><br />
<li>On your local computer, change (if required) the branch name to the name listed in the online repository:<br><br />
&ensp; - Typing <b>git branch</b> tells you the name(s) of the branch(es) with the current one having a * next to it<br><br />
&ensp; - If you need to modify your local computer's branch name use <b>git branch -M main</b> where <i>main</i> is the name to change the branch to<br><br />
&ensp; - Use <b>git branch</b> to verify the change </li><br><br />
<br />
<!-- Step 8 --><br />
<li>On your local computer, push your commit:<br><br />
&ensp; - Type <b>git push -u origin main</b><br><br />
&ensp; &ensp; You'll need to enter your GitHub profile name and your Personal Access Token to complete the push<br><br><br />
&ensp; - The purpose of the <i>-u</i> flag is to establish an upstream relationship between the local branch and the specified remote branch<br><br />
&nbsp; &nbsp; This is typically done on the initial push to a remote repository. After that, you don't need to use the -u flag again for subsequent pushes to the same branch </li><br><br />
<br />
<!-- Step 9 --><br />
<li>At this point your online GitHub repository should be the same as the working folder on your local computer <br><br />
&emsp; &nbsp; You can now continue to code and push/pull to GitHub as needed to track/update changes. Good luck, if it doesn't work don't blame me ... I only work here :) </li><br><br />
</ol><br />
<br />
== <i>Ignoring Files (.gitignore)</i> ==<br />
There are various reasons to not want to track/push files. The following situation helps when you're having trouble pushing files due to them being too big (>50 MB, GitHub max) .<br />
<ol><br />
<li><u>Find those problem files</u>: <br><br />
&ensp; - Ensure you're in the directory of interest (use <b>cd </b> command as needed) <br><br />
&ensp; - Type <b>find . -type f -size +50M </b><br><br />
&ensp; - This will list files that are above GitHub's 50 MB limit </li><br><br />
<br />
<li><u>Create a .gitignore file</u>: <br><br />
&ensp; - To create one use the command <b>touch .gitnore </b><br><br />
&ensp; &ensp; Make sure you are in the root folder of your repository on your local computer when you use this command <br><br />
&ensp; &ensp; <u>Hint</u> - The root folder is named the same as your repository on GitHub </li><br><br />
<br />
<li><u>Use your favorite text editor to open the file (i.e. Vim, Notepad++, etc.)</u>: <br><br />
&ensp; - Enter the oversized files from above into the girignore file<br><br />
&ensp; &ensp; Make sure to remove the <b>.</b> if you decide to copy/paste <br><br />
<i><u>Example</u>:</i></li><br />
<br />
<!-- Example --><br />
<pre># Remember: A line that follows # is a comment.<br />
#<br />
# To ignore a file update this file (.gitignore) then add, commit, and push this file.<br />
# Do this BEFORE any other pushes so the rule will be in effect.<br />
<br />
# These files are above GitHub's recommended file size (50 MB). SUBFOLDER/FILE<br />
MonteCarlo/fermi.txt<br />
Examples/mctuple.root<br />
Examples/mctuple.hbook<br />
Examples/ntuple.root<br />
Examples/log<br />
Examples/omega2p_sim_1.itape<br />
Examples/ntuple.hbook<br />
<br />
# These are object files. Code that is compiled to machine code, no need fo me to saved/tracked in GitHub.<br />
# * is a wild card, so anything that has .o at the end is ignored using *.o, while *.o.* says ignore anything that has .o. within the name. <br />
*.o<br />
*.o.*<br />
</pre><br><br />
<br />
<li><u>Ignore already checked in files</u>: <br><br />
&ensp; - Since you already tried and failed to fully push those file, you'll need to untrack them <br><br />
&ensp; - From your terminal type <b>git rm --cached FILENAME </b><br><br />
&ensp; &ensp; Hint - You can copy/paste from the find results <b>git rm --cached /SUBFOLDER/FILENAME </b><br><br />
&ensp; - Do this for all files that require it before proceeding </li><br><br />
<br />
<li><u>Add, commit, and push the .gitignore file</u>: <br><br />
&ensp; - Add the gitignore file using <b>git add .gitignore </b> <br><br />
&ensp; - Commit the file using <b>git commit -m "Files to ignore" </b> <br><br />
&ensp; - Push the commit using <b>git push origin main </b> <br><br />
&ensp; &ensp; Now subsequent pushes will know to ignore those files or types of files </li> <br><br />
<br />
== <u><i>Extras</i></u> ==<br />
<ul><br />
<!-- 0 --><br />
<li>For more information on common git commands, check out the links in the header at the top of the Git Guides webpage (https://github.com/git-guides/git-add)<br><br />
&ensp; - This site is a good starting point for common questions</li><br><br />
<br />
<!-- 1 --><br />
<li><b>git status</b><br><br />
&ensp; - This command shows the branch you're on, what files are in the working or staging directory, and other important information<br><br />
&emsp; <u>Example</u>:<br><br />
<pre> mcintyre@gluey/nfs/direct/annex/mcintyre/GitRepo/Radphi_pi02gp/RUN0<br />
$ git status<br />
# On branch PI0<br />
# Untracked files:<br />
# (use &quot;git add &lt;file&gt;...&quot; to include in what will be committed)<br />
#<br />
# STEP6/<br />
# STEP7/<br />
nothing added to commit but untracked files present (use &quot;git add&quot; to track)<br />
</pre><br />
</li><br><br />
<br />
<!-- 2 --><br />
<li><b>git reset</b><br><br />
&ensp; - This command unstages all changes (e.g. all <i>git add</i> performed before a <i>git commit</i>)<br></li><br />
<b>git reset <i>file-name</i></b><br><br />
&ensp; - This command undoes <i>git add</i> for uncommited changes to file <i>file-name</i><br><br><br />
<br />
<!-- 3 --><br />
<br />
<br />
</li><br />
<br />
<br />
<br />
<br />
<!-- For spacing: &nbsp; OR <br> &ensp; OR <br> &emsp; OR <br> --><br />
<!-- Smaller indent to Larger indent --></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=GitHub&diff=36416GitHub2023-06-05T20:49:21Z<p>Mcintyre: /* Ignoring Files (.gitignore) */</p>
<hr />
<div><font size="3">GitHub is a web-based platform that provides hosting of coding repositories. It offers a centralized location for people to store, manage, and allow collaboration on their code. It is especially useful for version control and project tracking. The following information is geared towards linking gluey annex repositories with GitHub, but can easily be used to link your home computer to a GitHub repository. This wiki page is being updated as the author learns how to use GitHub, so if you know a better, more efficient way to accomplish a task then by all means please do it that way (... and add an addendum to this page if you have a login).</font><br />
<br />
<br />
== <i>Setup Option #1 (GitHub &#x2192; local computer)</i> ==<br />
Adding a repository in your GitHub account to your local computer (e.g. cloning).<br />
<ol><br />
<!-- Step 1 --><br />
<li>Sign up for a GitHub account by going to the [https://github.com/ GitHub website] and create a new account<br><i>- If you do not make your email address public you will have problems pushing your code later</i></li><br><br />
<br />
<!-- Step 2 --><br />
<li>Once you're logged in, click on the "+" sign at the top-right corner of the GitHub homepage and select "New repository" to create a new repository. Give your repository a name and provide a description.</li><br />
<ul><br />
<li>The repository name will be your folder name on gluey (see below)</li><br />
<li>Repository description is optional</li><br />
<li>Repository Setting:</li><br />
<ul><br />
<li>Private vs. Public</li><br />
<li>License (optional) - MIT License is well known and least restrictive</li><br />
<li>You can add a README file</li><br />
<li>You can also rename the main branch (this must be done before the repository is created, changing the name will change all subsequent repositories that are made in the future)</li><br />
<li>And more ...</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 3 --><br />
<li>Once the repository is setup online, add a Personal Access Token</li><br />
<ul><br />
<li>At the top-right of the GitHub website click on the pull-down and select "Settings"</li><br />
<li>On the left select "Developer settings" located at the bottom </li><br />
<li>Then on the left select "Personal access tokens"</li><br />
<li>Select "Fine-grained tokens" or "Tokens (classic)", I did the prior one</li><br />
<ul><br />
<li>For the Fine-grained token you will need to select which permissions you'd like to allow (not sure about the classic token)</li><br />
<li>Select a period for the token to be valid, upto 90 days maximum (I believe)</li><br />
<li>Once complete it will provide you with the token you can copy, this will be used in place of your password later</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 4 --><br />
<li>Clone your repository</li><br />
<ul><br />
<li>Log in to gluey using a VNC and navigate to the location in your annex where you'll be working</li><br />
<ul><br />
<li>You can do the same for your home computer, you'll just need to open a terminal or command prompt and navigate to the directory where you want to store your code</li><br />
</ul><br />
<li>Use the command:<br><br />
<b>git clone https&#58;&#47;&#47;github&#46;com&#47;<i>your-username</i>&#47;<i>your-repository</i>&#46;git</b><br> <br />
<i>&ensp; - Make sure to replace "your-username" with your GitHub username and "your-repository" with the name of your repository</i></li><br />
<li>You will now need to login. Use your <u>GitHub Username</u>, but make sure to use the <u>Personal Access Token</u> you created earlier and <b><u>NOT</u></b> your GitHub password</li><br />
</ul><br><br />
<br />
<!-- Step 5 --><br />
<li>At this point you should have a new folder in your annex with the name of your GitHub repository</li><br />
<ul><br />
<li>Confirm that the remote repository is correctly added, use the command:<br> <br />
<b>git remote -v</b><br></li><br />
<li>If needed, you can link the local repository to the remote repository using:<br> <br />
<b>git remote add origin <i>repository-url</i></b><br></li><br />
</ul><br><br />
<br />
<!-- Step 6 --><br />
<li>To switch to or determine a branch in Git, you can use the git checkout command:<br />
<ul><br />
<li>Determine the name of the branch you want to switch to via:<br> <br />
<b>git branch</b><br> <br />
<i>&ensp; - It will show all branches available and indicate your current branch with a * </i><br></li><br />
<li>Create a new branch using: <br> <br />
<b>git branch <i>new-branch-name</i></b> </li><br />
<li>Switch to that branch and work in it via:<br><br />
<b>git checkout <i>new-branch-name</i></b> <br></li><br><br />
<li>The two steps above can be combined:<br> <br />
<b>git checkout -b <i>new-branch-name</i></b> <br><br />
&ensp; <i>- This will <u>create and switch</u> to the new branch in one step</i></li><br><br />
</ul><br />
<br />
<!-- Step 7 --><br />
<li>Add files/folders to your directory</li><br><br />
<br />
<!-- Step 8 --><br />
<li>When you're ready to save, make sure you are in the root directory of your repository or the directory where the new folder you want to save is located. Then use the git add command to add the new folder and its contents to <br />
the staging area. Run the following command:<br><br />
<b>git add <i>folder-name</i></b><br><br />
<i>&ensp;- Adds the specified file or folder</i><br><br />
&emsp; OR <br><br />
<b>git add .</b> <br><br />
<i>&ensp;- Adds all new files and folders in the current directory recursively, does not add higher directory information</i><br><br />
&emsp; OR <br><br />
<b>git add -A</b> <br><br />
<i>&ensp;- Adds all files: new, modified, and deleted files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br />
&emsp; OR <br><br />
<b>git add -u</b> <br><br />
<i>&ensp;- Adds modified and deleted files only. Excludes new files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br><br />
For a more detailed description of <i>git add</i> go to: https://github.com/git-guides/git-add</li><br><br />
<br />
<!-- Step 9 --><br />
<li>Once the new folder/file is added to the staging area, you can commit the changes using the git commit command:<br> <b>git commit -m "<i>Commit message</i>"</b> <br><br />
<i>&ensp; - Replace Commit message with a descriptive message summarizing the changes you made. Keep " " around your message</i></li><br><br />
<br />
<!-- Step 10 --><br />
<li>After committing the changes (on your local machine), you can push them to the remote repository on GitHub using the git push command:<br> <br />
<b>git push origin <i>branch-name</i></b><br><br />
<i>&ensp; - Replace branch-name with the name of the branch you want to push to (e.g., main)</i><br><br />
<i>&ensp; - You will need to login with your Username and Personal Access Token</i></li><br><br />
</ol><br />
<br />
== <i>Setup Option #2 (Local computer &#x2192; GitHub)</i> ==<br />
Adding a repository from your local computer to GitHub<br />
<ol><br />
<!-- Step 1 --><br />
<li>On your local computer, initialize the folder you want to adds as a repository:<br><br />
&ensp; - Use <b>cd</b> to navigate to the folder that contains the work you'd like to track/backup<br><br />
&ensp; - Type <b>git init</b> to initialize the folder for Git tracking<br><br />
&ensp; - (<i>optional step</i>) Type <b>touch .gitignore</b> to create a blank file in that folder, which can later be modify to specify files or types of files you don't want to track </li><br><br />
<br />
<!-- Step 2 --><br />
<li>Go to https://github.com/ , login, and create a repository as described above. Name the repository the same as your working folder you did the git init command in</li><br><br />
<br />
<!-- Step 3 --><br />
<li>On your local computer, link your working folder to the GitHub repsoitory:<br><br />
&ensp; - Type <b>git remote add origin <i>github-repository-url</i></b><br><br />
&ensp; &ensp; <i>github-repository-url</i> can be found online: <br><br />
&ensp; &ensp; &ensp; &ensp; - In your repository folder click on the green [<> Code] button then under the Local tab you'll see Clone HTTPS <br><br />
&ensp; &ensp; &ensp; &ensp; - Click the copy button to paste the address into the line of code above</li><br><br />
<br />
<!-- Step 4 --><br />
<li>On your local computer, merge the two repositories (local and online):<br><br />
&ensp; - Type <b>git pull origin main</b><br><br />
&ensp; &ensp; This assumes the GitHub branch is named <i>main</i> in the repository you created online </li><br><br />
<br />
<!-- Step 5 --><br />
<li>On your local computer, add files to track:<br><br />
<b>git add <i>folder-name</i></b><br><br />
&ensp; <i> - Adds the specified file or folder</i><br><br />
&emsp; OR <br><br />
<b>git add .</b> <br><br />
&ensp; <i> - Adds all new files and folders in the current directory recursively, does not add higher directory information</i><br><br />
&emsp; OR <br><br />
<b>git add -A</b> <br><br />
&ensp; <i> - Adds all files: new, modified, and deleted files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br />
&emsp; OR <br><br />
<b>git add -u</b> <br><br />
<&ensp; <i> - Adds modified and deleted files only. Excludes new files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br><br />
For a more detailed description of <i>git add</i> go to: https://github.com/git-guides/git-add</li><br><br />
<br />
<!-- Step 6 --><br />
<li>On your local computer, commit that add:<br><br />
&ensp; - Type <b>git commit -m "Message here"</b><br><br />
&ensp; &ensp; Change <i>Message here</i> to a brief description of the reason for the commit (ex: Initial commit) <br><br />
&ensp; &ensp; Make sure to keep "" </li><br><br />
<br />
<!-- Step 7 --><br />
<li>On your local computer, change (if required) the branch name to the name listed in the online repository:<br><br />
&ensp; - Typing <b>git branch</b> tells you the name(s) of the branch(es) with the current one having a * next to it<br><br />
&ensp; - If you need to modify your local computer's branch name use <b>git branch -M main</b> where <i>main</i> is the name to change the branch to<br><br />
&ensp; - Use <b>git branch</b> to verify the change </li><br><br />
<br />
<!-- Step 8 --><br />
<li>On your local computer, push your commit:<br><br />
&ensp; - Type <b>git push -u origin main</b><br><br />
&ensp; &ensp; You'll need to enter your GitHub profile name and your Personal Access Token to complete the push<br><br><br />
&ensp; - The purpose of the <i>-u</i> flag is to establish an upstream relationship between the local branch and the specified remote branch<br><br />
&nbsp; &nbsp; This is typically done on the initial push to a remote repository. After that, you don't need to use the -u flag again for subsequent pushes to the same branch </li><br><br />
<br />
<!-- Step 9 --><br />
<li>At this point your online GitHub repository should be the same as the working folder on your local computer <br><br />
&emsp; &nbsp; You can now continue to code and push/pull to GitHub as needed to track/update changes. Good luck, if it doesn't work don't blame me ... I only work here :) </li><br><br />
</ol><br />
<br />
== <i>Ignoring Files (.gitignore)</i> ==<br />
There are various reasons to not want to track/push files. The following situation helps when you're having trouble pushing files due to them being too big (>50 MB, GitHub max) .<br />
<ol><br />
<li><u>Find those files</u>: <br><br />
&ensp; - Ensure you're in the directory of interest (use <b>cd </b> command as needed) <br><br />
&ensp; - Type <b>find . -type f -size +50M </b><br><br />
&ensp; - This will list files that are above GitHub's 50 MB limit </li><br><br />
<br />
<li><u>Create a .gitignore file</u>: <br><br />
&ensp; - To create one use the command <b>touch .gitnore </b><br><br />
&ensp; &ensp; Make sure you are in the root folder of your repository on your local computer when you use this command <br><br />
&ensp; &ensp; Hint - The root folder is named the same as your repository on GitHub </li><br><br />
<br />
<li><u>Use your favorite text editor to open the file (i.e. Vim, Notepad++, etc.)</u>: <br><br />
&ensp; - Enter the oversized files from above into the girignore file<br><br />
&ensp; &ensp; Make sure to remove the . if you decide to copy/paste <br><br />
<i><u>Example</u>:</i></li><br />
<br />
<!-- Example --><br />
<pre># Remember: A line that follows # is a comment.<br />
#<br />
# To ignore a file update this file (.gitignore) then add, commit, and push this file.<br />
# Do this BEFORE any other pushes so the rule will be in effect.<br />
<br />
# These files are above GitHub's recommended file size (50 MB). SUBFOLDER/FILE<br />
MonteCarlo/fermi.txt<br />
Examples/mctuple.root<br />
Examples/mctuple.hbook<br />
Examples/ntuple.root<br />
Examples/log<br />
Examples/omega2p_sim_1.itape<br />
Examples/ntuple.hbook<br />
<br />
# These are object files. Code that is compiled to machine code, no need fo me to saved/tracked in GitHub.<br />
# * is a wild card, so anything that has .o at the end is ignored using *.o, while *.o.* says ignore anything that has .o. within the name. <br />
*.o<br />
*.o.*<br />
</pre><br><br />
<br />
<li><u>Ignore already checked in files</u>: <br><br />
&ensp; - Since you already tried and failed to fully push those file, you'll need to untrack them <br><br />
&ensp; - From your terminal type <b>git rm --cached FILENAME </b><br><br />
&ensp; &ensp; Hint - You can copy/paste from the find results <b>git rm --cached /SUBFOLDER/FILENAME </b><br><br />
&ensp; - Do this for all files that require it before proceeding </li><br><br />
<br />
<li><u>Add, commit, and push the .gitignore file</u>: <br><br />
&ensp; - Add the gitignore file using <b>git add .gitignore </b> <br><br />
&ensp; - Commit the file using <b>git commit -m "Files to ignore" </b> <br><br />
&ensp; - Push the commit using <b>git push origin main </b> <br><br />
&ensp; &ensp; Now subsequent pushes will know to ignore those files or types of files </li> <br><br />
<br />
== <u><i>Extras</i></u> ==<br />
<ul><br />
<!-- 0 --><br />
<li>For more information on common git commands, check out the links in the header at the top of the Git Guides webpage (https://github.com/git-guides/git-add)<br><br />
&ensp; - This site is a good starting point for common questions</li><br><br />
<br />
<!-- 1 --><br />
<li><b>git status</b><br><br />
&ensp; - This command shows the branch you're on, what files are in the working or staging directory, and other important information<br><br />
&emsp; <u>Example</u>:<br><br />
<pre> mcintyre@gluey/nfs/direct/annex/mcintyre/GitRepo/Radphi_pi02gp/RUN0<br />
$ git status<br />
# On branch PI0<br />
# Untracked files:<br />
# (use &quot;git add &lt;file&gt;...&quot; to include in what will be committed)<br />
#<br />
# STEP6/<br />
# STEP7/<br />
nothing added to commit but untracked files present (use &quot;git add&quot; to track)<br />
</pre><br />
</li><br><br />
<br />
<!-- 2 --><br />
<li><b>git reset</b><br><br />
&ensp; - This command unstages all changes (e.g. all <i>git add</i> performed before a <i>git commit</i>)<br></li><br />
<b>git reset <i>file-name</i></b><br><br />
&ensp; - This command undoes <i>git add</i> for uncommited changes to file <i>file-name</i><br><br><br />
<br />
<!-- 3 --><br />
<br />
<br />
</li><br />
<br />
<br />
<br />
<br />
<!-- For spacing: &nbsp; OR <br> &ensp; OR <br> &emsp; OR <br> --><br />
<!-- Smaller indent to Larger indent --></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=GitHub&diff=36415GitHub2023-06-05T20:37:18Z<p>Mcintyre: </p>
<hr />
<div><font size="3">GitHub is a web-based platform that provides hosting of coding repositories. It offers a centralized location for people to store, manage, and allow collaboration on their code. It is especially useful for version control and project tracking. The following information is geared towards linking gluey annex repositories with GitHub, but can easily be used to link your home computer to a GitHub repository. This wiki page is being updated as the author learns how to use GitHub, so if you know a better, more efficient way to accomplish a task then by all means please do it that way (... and add an addendum to this page if you have a login).</font><br />
<br />
<br />
== <i>Setup Option #1 (GitHub &#x2192; local computer)</i> ==<br />
Adding a repository in your GitHub account to your local computer (e.g. cloning).<br />
<ol><br />
<!-- Step 1 --><br />
<li>Sign up for a GitHub account by going to the [https://github.com/ GitHub website] and create a new account<br><i>- If you do not make your email address public you will have problems pushing your code later</i></li><br><br />
<br />
<!-- Step 2 --><br />
<li>Once you're logged in, click on the "+" sign at the top-right corner of the GitHub homepage and select "New repository" to create a new repository. Give your repository a name and provide a description.</li><br />
<ul><br />
<li>The repository name will be your folder name on gluey (see below)</li><br />
<li>Repository description is optional</li><br />
<li>Repository Setting:</li><br />
<ul><br />
<li>Private vs. Public</li><br />
<li>License (optional) - MIT License is well known and least restrictive</li><br />
<li>You can add a README file</li><br />
<li>You can also rename the main branch (this must be done before the repository is created, changing the name will change all subsequent repositories that are made in the future)</li><br />
<li>And more ...</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 3 --><br />
<li>Once the repository is setup online, add a Personal Access Token</li><br />
<ul><br />
<li>At the top-right of the GitHub website click on the pull-down and select "Settings"</li><br />
<li>On the left select "Developer settings" located at the bottom </li><br />
<li>Then on the left select "Personal access tokens"</li><br />
<li>Select "Fine-grained tokens" or "Tokens (classic)", I did the prior one</li><br />
<ul><br />
<li>For the Fine-grained token you will need to select which permissions you'd like to allow (not sure about the classic token)</li><br />
<li>Select a period for the token to be valid, upto 90 days maximum (I believe)</li><br />
<li>Once complete it will provide you with the token you can copy, this will be used in place of your password later</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 4 --><br />
<li>Clone your repository</li><br />
<ul><br />
<li>Log in to gluey using a VNC and navigate to the location in your annex where you'll be working</li><br />
<ul><br />
<li>You can do the same for your home computer, you'll just need to open a terminal or command prompt and navigate to the directory where you want to store your code</li><br />
</ul><br />
<li>Use the command:<br><br />
<b>git clone https&#58;&#47;&#47;github&#46;com&#47;<i>your-username</i>&#47;<i>your-repository</i>&#46;git</b><br> <br />
<i>&ensp; - Make sure to replace "your-username" with your GitHub username and "your-repository" with the name of your repository</i></li><br />
<li>You will now need to login. Use your <u>GitHub Username</u>, but make sure to use the <u>Personal Access Token</u> you created earlier and <b><u>NOT</u></b> your GitHub password</li><br />
</ul><br><br />
<br />
<!-- Step 5 --><br />
<li>At this point you should have a new folder in your annex with the name of your GitHub repository</li><br />
<ul><br />
<li>Confirm that the remote repository is correctly added, use the command:<br> <br />
<b>git remote -v</b><br></li><br />
<li>If needed, you can link the local repository to the remote repository using:<br> <br />
<b>git remote add origin <i>repository-url</i></b><br></li><br />
</ul><br><br />
<br />
<!-- Step 6 --><br />
<li>To switch to or determine a branch in Git, you can use the git checkout command:<br />
<ul><br />
<li>Determine the name of the branch you want to switch to via:<br> <br />
<b>git branch</b><br> <br />
<i>&ensp; - It will show all branches available and indicate your current branch with a * </i><br></li><br />
<li>Create a new branch using: <br> <br />
<b>git branch <i>new-branch-name</i></b> </li><br />
<li>Switch to that branch and work in it via:<br><br />
<b>git checkout <i>new-branch-name</i></b> <br></li><br><br />
<li>The two steps above can be combined:<br> <br />
<b>git checkout -b <i>new-branch-name</i></b> <br><br />
&ensp; <i>- This will <u>create and switch</u> to the new branch in one step</i></li><br><br />
</ul><br />
<br />
<!-- Step 7 --><br />
<li>Add files/folders to your directory</li><br><br />
<br />
<!-- Step 8 --><br />
<li>When you're ready to save, make sure you are in the root directory of your repository or the directory where the new folder you want to save is located. Then use the git add command to add the new folder and its contents to <br />
the staging area. Run the following command:<br><br />
<b>git add <i>folder-name</i></b><br><br />
<i>&ensp;- Adds the specified file or folder</i><br><br />
&emsp; OR <br><br />
<b>git add .</b> <br><br />
<i>&ensp;- Adds all new files and folders in the current directory recursively, does not add higher directory information</i><br><br />
&emsp; OR <br><br />
<b>git add -A</b> <br><br />
<i>&ensp;- Adds all files: new, modified, and deleted files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br />
&emsp; OR <br><br />
<b>git add -u</b> <br><br />
<i>&ensp;- Adds modified and deleted files only. Excludes new files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br><br />
For a more detailed description of <i>git add</i> go to: https://github.com/git-guides/git-add</li><br><br />
<br />
<!-- Step 9 --><br />
<li>Once the new folder/file is added to the staging area, you can commit the changes using the git commit command:<br> <b>git commit -m "<i>Commit message</i>"</b> <br><br />
<i>&ensp; - Replace Commit message with a descriptive message summarizing the changes you made. Keep " " around your message</i></li><br><br />
<br />
<!-- Step 10 --><br />
<li>After committing the changes (on your local machine), you can push them to the remote repository on GitHub using the git push command:<br> <br />
<b>git push origin <i>branch-name</i></b><br><br />
<i>&ensp; - Replace branch-name with the name of the branch you want to push to (e.g., main)</i><br><br />
<i>&ensp; - You will need to login with your Username and Personal Access Token</i></li><br><br />
</ol><br />
<br />
== <i>Setup Option #2 (Local computer &#x2192; GitHub)</i> ==<br />
Adding a repository from your local computer to GitHub<br />
<ol><br />
<!-- Step 1 --><br />
<li>On your local computer, initialize the folder you want to adds as a repository:<br><br />
&ensp; - Use <b>cd</b> to navigate to the folder that contains the work you'd like to track/backup<br><br />
&ensp; - Type <b>git init</b> to initialize the folder for Git tracking<br><br />
&ensp; - (<i>optional step</i>) Type <b>touch .gitignore</b> to create a blank file in that folder, which can later be modify to specify files or types of files you don't want to track </li><br><br />
<br />
<!-- Step 2 --><br />
<li>Go to https://github.com/ , login, and create a repository as described above. Name the repository the same as your working folder you did the git init command in</li><br><br />
<br />
<!-- Step 3 --><br />
<li>On your local computer, link your working folder to the GitHub repsoitory:<br><br />
&ensp; - Type <b>git remote add origin <i>github-repository-url</i></b><br><br />
&ensp; &ensp; <i>github-repository-url</i> can be found online: <br><br />
&ensp; &ensp; &ensp; &ensp; - In your repository folder click on the green [<> Code] button then under the Local tab you'll see Clone HTTPS <br><br />
&ensp; &ensp; &ensp; &ensp; - Click the copy button to paste the address into the line of code above</li><br><br />
<br />
<!-- Step 4 --><br />
<li>On your local computer, merge the two repositories (local and online):<br><br />
&ensp; - Type <b>git pull origin main</b><br><br />
&ensp; &ensp; This assumes the GitHub branch is named <i>main</i> in the repository you created online </li><br><br />
<br />
<!-- Step 5 --><br />
<li>On your local computer, add files to track:<br><br />
<b>git add <i>folder-name</i></b><br><br />
&ensp; <i> - Adds the specified file or folder</i><br><br />
&emsp; OR <br><br />
<b>git add .</b> <br><br />
&ensp; <i> - Adds all new files and folders in the current directory recursively, does not add higher directory information</i><br><br />
&emsp; OR <br><br />
<b>git add -A</b> <br><br />
&ensp; <i> - Adds all files: new, modified, and deleted files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br />
&emsp; OR <br><br />
<b>git add -u</b> <br><br />
<&ensp; <i> - Adds modified and deleted files only. Excludes new files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br><br />
For a more detailed description of <i>git add</i> go to: https://github.com/git-guides/git-add</li><br><br />
<br />
<!-- Step 6 --><br />
<li>On your local computer, commit that add:<br><br />
&ensp; - Type <b>git commit -m "Message here"</b><br><br />
&ensp; &ensp; Change <i>Message here</i> to a brief description of the reason for the commit (ex: Initial commit) <br><br />
&ensp; &ensp; Make sure to keep "" </li><br><br />
<br />
<!-- Step 7 --><br />
<li>On your local computer, change (if required) the branch name to the name listed in the online repository:<br><br />
&ensp; - Typing <b>git branch</b> tells you the name(s) of the branch(es) with the current one having a * next to it<br><br />
&ensp; - If you need to modify your local computer's branch name use <b>git branch -M main</b> where <i>main</i> is the name to change the branch to<br><br />
&ensp; - Use <b>git branch</b> to verify the change </li><br><br />
<br />
<!-- Step 8 --><br />
<li>On your local computer, push your commit:<br><br />
&ensp; - Type <b>git push -u origin main</b><br><br />
&ensp; &ensp; You'll need to enter your GitHub profile name and your Personal Access Token to complete the push<br><br><br />
&ensp; - The purpose of the <i>-u</i> flag is to establish an upstream relationship between the local branch and the specified remote branch<br><br />
&nbsp; &nbsp; This is typically done on the initial push to a remote repository. After that, you don't need to use the -u flag again for subsequent pushes to the same branch </li><br><br />
<br />
<!-- Step 9 --><br />
<li>At this point your online GitHub repository should be the same as the working folder on your local computer <br><br />
&emsp; &nbsp; You can now continue to code and push/pull to GitHub as needed to track/update changes. Good luck, if it doesn't work don't blame me ... I only work here :) </li><br><br />
</ol><br />
<br />
== <i>Ignoring Files (.gitignore)</i> ==<br />
There are various reasons to not want to track/push files. Here are some and how to handle them.<br />
<ol><br />
<!-- Step 1 --><br />
===Case 1 ===<br />
Case #1 - Trouble pushing files due to being too big (>50 MB, GitHub max) <br><br />
<li><u>Find those files</u>: <br><br />
&ensp; - Ensure you're in the directory of interest (use <b>cd </b> command as needed) <br><br />
&ensp; - Type <b>find . -type f -size +50M </b><br><br />
&ensp; - This will list files that are above GitHub's 50 MB limit </li><br><br />
<br />
<li><u>Create a .gitignore file</u>: <br><br />
&ensp; - To create one use the command <b>touch .gitnore </b><br><br />
&ensp; &ensp; Make sure you are in the root folder of your repository on your local computer when you use this command <br><br />
&ensp; &ensp; Hint - The root folder is named the same as your repository on GitHub </li><br><br />
<br />
<li><u>Use your favorite text editor to open the file (i.e. Vim, Notepad++, etc.)</u>: <br><br />
&ensp; - Enter the oversized files from above into the girignore file<br><br />
&ensp; &ensp; Make sure to remove the . if you decide to copy/paste <br><br />
<i><u>Example</u>:</i></li><br />
<br />
<!-- Example --><br />
<pre># Remember: A line that follows # is a comment.<br />
#<br />
# To ignore a file update this file (.gitignore) then add, commit, and push this file.<br />
# Do this BEFORE any other pushes so the rule will be in effect.<br />
<br />
# These files are above GitHub's recommended file size (50 MB). SUBFOLDER/FILE<br />
MonteCarlo/fermi.txt<br />
Examples/mctuple.root<br />
Examples/mctuple.hbook<br />
Examples/ntuple.root<br />
Examples/log<br />
Examples/omega2p_sim_1.itape<br />
Examples/ntuple.hbook<br />
<br />
# These are object files. Code that is compiled to machine code, no need fo me to saved/tracked in GitHub.<br />
# * is a wild card, so anything that has .o at the end is ignored using *.o, while *.o.* says ignore anything that has .o. within the name. <br />
*.o<br />
*.o.*<br />
</pre><br><br />
<br />
<li><u>Ignore already checked in files</u>: <br><br />
&ensp; - Since you already tried and failed to fully push those file, you'll need to untrack them <br><br />
&ensp; - From your terminal type <b>git rm --cached FILENAME </b><br><br />
&ensp; &ensp; Hint - You can copy/paste from the find results <b>git rm --cached /SUBFOLDER/FILENAME </b><br><br />
&ensp; - Do this for all files that require it before proceeding </li><br><br />
<br />
<br />
# If you want to ignore a file that is already checked in,<br />
# you must untrack the file before you add a rule to ignore it.<br />
# From your terminal, untrack the file:<br />
# <br />
<br />
<br />
<br />
<br />
<br />
<br />
== <u><i>Extras</i></u> ==<br />
<ul><br />
<!-- 0 --><br />
<li>For more information on common git commands, check out the links in the header at the top of the Git Guides webpage (https://github.com/git-guides/git-add)<br><br />
&ensp; - This site is a good starting point for common questions</li><br><br />
<br />
<!-- 1 --><br />
<li><b>git status</b><br><br />
&ensp; - This command shows the branch you're on, what files are in the working or staging directory, and other important information<br><br />
&emsp; <u>Example</u>:<br><br />
<pre> mcintyre@gluey/nfs/direct/annex/mcintyre/GitRepo/Radphi_pi02gp/RUN0<br />
$ git status<br />
# On branch PI0<br />
# Untracked files:<br />
# (use &quot;git add &lt;file&gt;...&quot; to include in what will be committed)<br />
#<br />
# STEP6/<br />
# STEP7/<br />
nothing added to commit but untracked files present (use &quot;git add&quot; to track)<br />
</pre><br />
</li><br><br />
<br />
<!-- 2 --><br />
<li><b>git reset</b><br><br />
&ensp; - This command unstages all changes (e.g. all <i>git add</i> performed before a <i>git commit</i>)<br></li><br />
<b>git reset <i>file-name</i></b><br><br />
&ensp; - This command undoes <i>git add</i> for uncommited changes to file <i>file-name</i><br><br><br />
<br />
<!-- 3 --><br />
<br />
<br />
</li><br />
<br />
<br />
<br />
<br />
<!-- For spacing: &nbsp; OR <br> &ensp; OR <br> &emsp; OR <br> --><br />
<!-- Smaller indent to Larger indent --></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=GitHub&diff=36414GitHub2023-06-05T18:05:44Z<p>Mcintyre: </p>
<hr />
<div><font size="3">GitHub is a web-based platform that provides hosting of coding repositories. It offers a centralized location for people to store, manage, and allow collaboration on their code. It is especially useful for version control and project tracking. The following information is geared towards linking gluey annex repositories with GitHub, but can easily be used to link your home computer to a GitHub repository. This wiki page is being updated as the author learns how to use GitHub, so if you know a better, more efficient way to accomplish a task then by all means please do it that way (... and add an addendum to this page if you have a login).</font><br />
<br />
<br />
== <i>Setup Option #1 (GitHub &#x2192; local computer)</i> ==<br />
Adding a repository in your GitHub account to your local computer (e.g. cloning).<br />
<ol><br />
<!-- Step 1 --><br />
<li>Sign up for a GitHub account by going to the [https://github.com/ GitHub website] and create a new account<br><i>- If you do not make your email address public you will have problems pushing your code later</i></li><br><br />
<br />
<!-- Step 2 --><br />
<li>Once you're logged in, click on the "+" sign at the top-right corner of the GitHub homepage and select "New repository" to create a new repository. Give your repository a name and provide a description.</li><br />
<ul><br />
<li>The repository name will be your folder name on gluey (see below)</li><br />
<li>Repository description is optional</li><br />
<li>Repository Setting:</li><br />
<ul><br />
<li>Private vs. Public</li><br />
<li>License (optional) - MIT License is well known and least restrictive</li><br />
<li>You can add a README file</li><br />
<li>You can also rename the main branch (this must be done before the repository is created, changing the name will change all subsequent repositories that are made in the future)</li><br />
<li>And more ...</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 3 --><br />
<li>Once the repository is setup online, add a Personal Access Token</li><br />
<ul><br />
<li>At the top-right of the GitHub website click on the pull-down and select "Settings"</li><br />
<li>On the left select "Developer settings" located at the bottom </li><br />
<li>Then on the left select "Personal access tokens"</li><br />
<li>Select "Fine-grained tokens" or "Tokens (classic)", I did the prior one</li><br />
<ul><br />
<li>For the Fine-grained token you will need to select which permissions you'd like to allow (not sure about the classic token)</li><br />
<li>Select a period for the token to be valid, upto 90 days maximum (I believe)</li><br />
<li>Once complete it will provide you with the token you can copy, this will be used in place of your password later</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 4 --><br />
<li>Clone your repository</li><br />
<ul><br />
<li>Log in to gluey using a VNC and navigate to the location in your annex where you'll be working</li><br />
<ul><br />
<li>You can do the same for your home computer, you'll just need to open a terminal or command prompt and navigate to the directory where you want to store your code</li><br />
</ul><br />
<li>Use the command:<br><br />
<b>git clone https&#58;&#47;&#47;github&#46;com&#47;<i>your-username</i>&#47;<i>your-repository</i>&#46;git</b><br> <br />
<i>&ensp; - Make sure to replace "your-username" with your GitHub username and "your-repository" with the name of your repository</i></li><br />
<li>You will now need to login. Use your <u>GitHub Username</u>, but make sure to use the <u>Personal Access Token</u> you created earlier and <b><u>NOT</u></b> your GitHub password</li><br />
</ul><br><br />
<br />
<!-- Step 5 --><br />
<li>At this point you should have a new folder in your annex with the name of your GitHub repository</li><br />
<ul><br />
<li>Confirm that the remote repository is correctly added, use the command:<br> <br />
<b>git remote -v</b><br></li><br />
<li>If needed, you can link the local repository to the remote repository using:<br> <br />
<b>git remote add origin <i>repository-url</i></b><br></li><br />
</ul><br><br />
<br />
<!-- Step 6 --><br />
<li>To switch to or determine a branch in Git, you can use the git checkout command:<br />
<ul><br />
<li>Determine the name of the branch you want to switch to via:<br> <br />
<b>git branch</b><br> <br />
<i>&ensp; - It will show all branches available and indicate your current branch with a * </i><br></li><br />
<li>Create a new branch using: <br> <br />
<b>git branch <i>new-branch-name</i></b> </li><br />
<li>Switch to that branch and work in it via:<br><br />
<b>git checkout <i>new-branch-name</i></b> <br></li><br><br />
<li>The two steps above can be combined:<br> <br />
<b>git checkout -b <i>new-branch-name</i></b> <br><br />
&ensp; <i>- This will <u>create and switch</u> to the new branch in one step</i></li><br><br />
</ul><br />
<br />
<!-- Step 7 --><br />
<li>Add files/folders to your directory</li><br><br />
<br />
<!-- Step 8 --><br />
<li>When you're ready to save, make sure you are in the root directory of your repository or the directory where the new folder you want to save is located. Then use the git add command to add the new folder and its contents to <br />
the staging area. Run the following command:<br><br />
<b>git add <i>folder-name</i></b><br><br />
<i>&ensp;- Adds the specified file or folder</i><br><br />
&emsp; OR <br><br />
<b>git add .</b> <br><br />
<i>&ensp;- Adds all new files and folders in the current directory recursively, does not add higher directory information</i><br><br />
&emsp; OR <br><br />
<b>git add -A</b> <br><br />
<i>&ensp;- Adds all files: new, modified, and deleted files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br />
&emsp; OR <br><br />
<b>git add -u</b> <br><br />
<i>&ensp;- Adds modified and deleted files only. Excludes new files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br><br />
For a more detailed description of <i>git add</i> go to: https://github.com/git-guides/git-add</li><br><br />
<br />
<!-- Step 9 --><br />
<li>Once the new folder/file is added to the staging area, you can commit the changes using the git commit command:<br> <b>git commit -m "<i>Commit message</i>"</b> <br><br />
<i>&ensp; - Replace Commit message with a descriptive message summarizing the changes you made. Keep " " around your message</i></li><br><br />
<br />
<!-- Step 10 --><br />
<li>After committing the changes (on your local machine), you can push them to the remote repository on GitHub using the git push command:<br> <br />
<b>git push origin <i>branch-name</i></b><br><br />
<i>&ensp; - Replace branch-name with the name of the branch you want to push to (e.g., main)</i><br><br />
<i>&ensp; - You will need to login with your Username and Personal Access Token</i></li><br><br />
</ol><br />
<br />
== <i>Setup Option #2 (Local computer &#x2192; GitHub)</i> ==<br />
Adding a repository from your local computer to GitHub<br />
<ol><br />
<!-- Step 1 --><br />
<li>On your local computer, initialize the folder you want to adds as a repository:<br><br />
&ensp; - Use <b>cd</b> to navigate to the folder that contains the work you'd like to track/backup<br><br />
&ensp; - Type <b>git init</b> to initialize the folder for Git tracking<br><br />
&ensp; - (<i>optional step</i>) Type <b>touch .gitignore</b> to create a blank file in that folder, which can later be modify to specify files or types of files you don't want to track </li><br><br />
<br />
<!-- Step 2 --><br />
<li>Go to https://github.com/ , login, and create a repository as described above. Name the repository the same as your working folder you did the git init command in</li><br><br />
<br />
<!-- Step 3 --><br />
<li>On your local computer, link your working folder to the GitHub repsoitory:<br><br />
&ensp; - Type <b>git remote add origin <i>github-repository-url</i></b><br><br />
&ensp; &ensp; <i>github-repository-url</i> can be found online: <br><br />
&ensp; &ensp; &ensp; &ensp; - In your repository folder click on the green [<> Code] button then under the Local tab you'll see Clone HTTPS <br><br />
&ensp; &ensp; &ensp; &ensp; - Click the copy button to paste the address into the line of code above</li><br><br />
<br />
<!-- Step 4 --><br />
<li>On your local computer, merge the two repositories (local and online):<br><br />
&ensp; - Type <b>git pull origin main</b><br><br />
&ensp; &ensp; This assumes the GitHub branch is named <i>main</i> in the repository you created online </li><br><br />
<br />
<!-- Step 5 --><br />
<li>On your local computer, add files to track:<br><br />
<b>git add <i>folder-name</i></b><br><br />
&ensp; <i> - Adds the specified file or folder</i><br><br />
&emsp; OR <br><br />
<b>git add .</b> <br><br />
&ensp; <i> - Adds all new files and folders in the current directory recursively, does not add higher directory information</i><br><br />
&emsp; OR <br><br />
<b>git add -A</b> <br><br />
&ensp; <i> - Adds all files: new, modified, and deleted files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br />
&emsp; OR <br><br />
<b>git add -u</b> <br><br />
<&ensp; <i> - Adds modified and deleted files only. Excludes new files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br><br />
For a more detailed description of <i>git add</i> go to: https://github.com/git-guides/git-add</li><br><br />
<br />
<!-- Step 6 --><br />
<li>On your local computer, commit that add:<br><br />
&ensp; - Type <b>git commit -m "Message here"</b><br><br />
&ensp; &ensp; Change <i>Message here</i> to a brief description of the reason for the commit (ex: Initial commit) <br><br />
&ensp; &ensp; Make sure to keep "" </li><br><br />
<br />
<!-- Step 7 --><br />
<li>On your local computer, change (if required) the branch name to the name listed in the online repository:<br><br />
&ensp; - Typing <b>git branch</b> tells you the name(s) of the branch(es) with the current one having a * next to it<br><br />
&ensp; - If you need to modify your local computer's branch name use <b>git branch -M main</b> where <i>main</i> is the name to change the branch to<br><br />
&ensp; - Use <b>git branch</b> to verify the change </li><br><br />
<br />
<!-- Step 8 --><br />
<li>On your local computer, push your commit:<br><br />
&ensp; - Type <b>git push -u origin main</b><br><br />
&ensp; &ensp; You'll need to enter your GitHub profile name and your Personal Access Token to complete the push<br><br><br />
&ensp; - The purpose of the <i>-u</i> flag is to establish an upstream relationship between the local branch and the specified remote branch<br><br />
&nbsp; &nbsp; This is typically done on the initial push to a remote repository. After that, you don't need to use the -u flag again for subsequent pushes to the same branch </li><br><br />
<br />
<!-- Step 9 --><br />
<li>At this point your online GitHub repository should be the same as the working folder on your local computer <br><br />
&emsp; &nbsp; You can now continue to code and push/pull to GitHub as needed to track/update changes. Good luck, if it doesn't work don't blame me ... I only work here :) </li><br><br />
</ol><br />
<br />
== <u><i>Extras</i></u> ==<br />
<ul><br />
<!-- 0 --><br />
<li>For more information on common git commands, check out the links in the header at the top of the Git Guides webpage (https://github.com/git-guides/git-add)<br><br />
&ensp; - This site is a good starting point for common questions</li><br><br />
<br />
<!-- 1 --><br />
<li><b>git status</b><br><br />
&ensp; - This command shows the branch you're on, what files are in the working or staging directory, and other important information<br><br />
&emsp; <u>Example</u>:<br><br />
<pre> mcintyre@gluey/nfs/direct/annex/mcintyre/GitRepo/Radphi_pi02gp/RUN0<br />
$ git status<br />
# On branch PI0<br />
# Untracked files:<br />
# (use &quot;git add &lt;file&gt;...&quot; to include in what will be committed)<br />
#<br />
# STEP6/<br />
# STEP7/<br />
nothing added to commit but untracked files present (use &quot;git add&quot; to track)<br />
</pre><br />
</li><br><br />
<br />
<!-- 2 --><br />
<li><b>git reset</b><br><br />
&ensp; - This command unstages all changes (e.g. all <i>git add</i> performed before a <i>git commit</i>)<br></li><br />
<b>git reset <i>file-name</i></b><br><br />
&ensp; - This command undoes <i>git add</i> for uncommited changes to file <i>file-name</i><br><br><br />
<br />
<!-- 3 --><br />
<br />
<br />
</li><br />
<br />
<br />
<br />
<br />
<!-- For spacing: &nbsp; OR <br> &ensp; OR <br> &emsp; OR <br> --><br />
<!-- Smaller indent to Larger indent --></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=GitHub&diff=36413GitHub2023-06-04T20:42:12Z<p>Mcintyre: /* The Extras */</p>
<hr />
<div><font size="3">GitHub is a web-based platform that provides hosting of coding repositories. It offers a centralized location for people to store, manage, and allow collaboration on their code. It is especially useful for version control and project tracking. The following information is geared towards linking gluey annex repositories with GitHub, but can easily be used to link your home computer to a GitHub repository. This wiki page is being updated as the author learns how to use GitHub, so if you know a better, more efficient way to accomplish a task then by all means please do it that way (... and add an addendum to this page if you have a login).</font><br />
<br />
== <u><i>The Setup</i></u> ==<br />
<ol><br />
<!-- Step 1 --><br />
<li>Sign up for a GitHub account by going to the [https://github.com/ GitHub website] and create a new account<br><i>- If you do not make your email address public you will have problems pushing your code later</i></li><br><br />
<br />
<!-- Step 2 --><br />
<li>Once you're logged in, click on the "+" sign at the top-right corner of the GitHub homepage and select "New repository" to create a new repository. Give your repository a name and provide a description.</li><br />
<ul><br />
<li>The repository name will be your folder name on gluey (see below)</li><br />
<li>Repository description is optional</li><br />
<li>Repository Setting:</li><br />
<ul><br />
<li>Private vs. Public</li><br />
<li>License (optional) - MIT License is well known and least restrictive</li><br />
<li>You can add a README file</li><br />
<li>You can also rename the main branch (this must be done before the repository is created, changing the name will change all subsequent repositories that are made in the future)</li><br />
<li>And more ...</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 3 --><br />
<li>Once the repository is setup online, add a Personal Access Token</li><br />
<ul><br />
<li>At the top-right of the GitHub website click on the pull-down and select "Settings"</li><br />
<li>On the left select "Developer settings" located at the bottom </li><br />
<li>Then on the left select "Personal access tokens"</li><br />
<li>Select "Fine-grained tokens" or "Tokens (classic)", I did the prior one</li><br />
<ul><br />
<li>For the Fine-grained token you will need to select which permissions you'd like to allow (not sure about the classic token)</li><br />
<li>Select a period for the token to be valid, upto 90 days maximum (I believe)</li><br />
<li>Once complete it will provide you with the token you can copy, this will be used in place of your password later</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 4 --><br />
<li>Clone your repository</li><br />
<ul><br />
<li>Log in to gluey using a VNC and navigate to the location in your annex where you'll be working</li><br />
<ul><br />
<li>You can do the same for your home computer, you'll just need to open a terminal or command prompt and navigate to the directory where you want to store your code</li><br />
</ul><br />
<li>Use the command:<br><br />
<b>git clone https&#58;&#47;&#47;github&#46;com&#47;<i>your-username</i>&#47;<i>your-repository</i>&#46;git</b><br> <br />
<i>&ensp; - Make sure to replace "your-username" with your GitHub username and "your-repository" with the name of your repository</i></li><br />
<li>You will now need to login. Use your <u>GitHub Username</u>, but make sure to use the <u>Personal Access Token</u> you created earlier and <b><u>NOT</u></b> your GitHub password</li><br />
</ul><br><br />
<br />
<!-- Step 5 --><br />
<li>At this point you should have a new folder in your annex with the name of your GitHub repository</li><br />
<ul><br />
<li>Confirm that the remote repository is correctly added, use the command:<br> <br />
<b>git remote -v</b><br></li><br />
<li>If needed, you can link the local repository to the remote repository using:<br> <br />
<b>git remote add origin <i>repository-url</i></b><br></li><br />
</ul><br><br />
<br />
<!-- Step 6 --><br />
<li>To switch to or determine a branch in Git, you can use the git checkout command:<br />
<ul><br />
<li>Determine the name of the branch you want to switch to via:<br> <br />
<b>git branch</b><br> <br />
<i>&ensp; - It will show all branches available and indicate your current branch with a * </i><br></li><br />
<li>Create a new branch using: <br> <br />
<b>git branch <i>new-branch-name</i></b> </li><br />
<li>Switch to that branch and work in it via:<br><br />
<b>git checkout <i>new-branch-name</i></b> <br></li><br><br />
<li>The two steps above can be combined:<br> <br />
<b>git checkout -b <i>new-branch-name</i></b> <br><br />
&ensp; <i>- This will <u>create and switch</u> to the new branch in one step</i></li><br><br />
</ul><br />
<br />
<!-- Step 7 --><br />
<li>Add files/folders to your directory</li><br><br />
<br />
<!-- Step 8 --><br />
<li>When you're ready to save, make sure you are in the root directory of your repository or the directory where the new folder you want to save is located. Then use the git add command to add the new folder and its contents to <br />
the staging area. Run the following command:<br><br />
<b>git add <i>folder-name</i></b><br><br />
<i>&ensp;- Adds the specified file or folder</i><br><br />
&emsp; OR <br><br />
<b>git add .</b> <br><br />
<i>&ensp;- Adds all new files and folders in the current directory recursively, does not add higher directory information</i><br><br />
&emsp; OR <br><br />
<b>git add -A</b> <br><br />
<i>&ensp;- Adds all files: new, modified, and deleted files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br />
&emsp; OR <br><br />
<b>git add -u</b> <br><br />
<i>&ensp;- Adds modified and deleted files only. Excludes new files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br><br />
For a more detailed description of <i>git add</i> go to: https://github.com/git-guides/git-add</li><br><br />
<br />
<!-- Step 9 --><br />
<li>Once the new folder/file is added to the staging area, you can commit the changes using the git commit command:<br> <b>git commit -m "<i>Commit message</i>"</b> <br><br />
<i>&ensp; - Replace Commit message with a descriptive message summarizing the changes you made. Keep " " around your message</i></li><br><br />
<br />
<!-- Step 10 --><br />
<li>After committing the changes (on your local machine), you can push them to the remote repository on GitHub using the git push command:<br> <br />
<b>git push origin <i>branch-name</i></b><br><br />
<i>&ensp; - Replace branch-name with the name of the branch you want to push to (e.g., main)</i><br><br />
<i>&ensp; - You will need to login with your Username and Personal Access Token</i></li><br><br />
</ol><br />
<br />
== <u><i>The Extras</i></u> ==<br />
<ul><br />
<!-- 0 --><br />
<li>For more information on common git commands, check out the links in the header at the top of the Git Guides webpage (https://github.com/git-guides/git-add)<br><br />
&ensp; - This site is a good starting point for common questions</li><br><br />
<br />
<!-- 1 --><br />
<li><b>git status</b><br><br />
&ensp; - This command shows the branch you're on, what files are in the working or staging directory, and other important information<br><br />
&emsp; <u>Example</u>:<br><br />
<pre> mcintyre@gluey/nfs/direct/annex/mcintyre/GitRepo/Radphi_pi02gp/RUN0<br />
$ git status<br />
# On branch PI0<br />
# Untracked files:<br />
# (use &quot;git add &lt;file&gt;...&quot; to include in what will be committed)<br />
#<br />
# STEP6/<br />
# STEP7/<br />
nothing added to commit but untracked files present (use &quot;git add&quot; to track)<br />
</pre><br />
</li><br><br />
<br />
<!-- 2 --><br />
<li><b>git reset</b><br><br />
&ensp; - This command unstages all changes (e.g. all <i>git add</i> performed before a <i>git commit</i>)<br></li><br />
<b>git reset <i>file-name</i></b><br><br />
&ensp; - This command undoes <i>git add</i> for uncommited changes to file <i>file-name</i><br><br><br />
<br />
<!-- 3 --><br />
<li><u>Adding a repository from your local computer to GitHub</u><br><br />
&ensp; 1) On your local computer, initialize the folder you want to adds as a repository:<br><br />
&ensp; &ensp; - Use <b>cd</b> to navigate to the folder that contains the work you'd like to track/backup<br><br />
&ensp; &ensp; - Type <b>git init</b> to initialize the folder for Git tracking<br><br />
&ensp; &ensp; - Type <b>touch .gitignore</b> to create a blank file in that folder, which can later be modify to specify files or types of files you don't want to track (<i>optional step</i>)<br><br><br />
<br />
&ensp; 2) Go to https://github.com/ , login, and create a repository as described above. Name the repository the same as your working folder you did the git init command in<br><br><br />
<br />
&ensp; 3) On your local computer link your working folder to the GitHub repsoitory:<br><br />
&ensp; &ensp; - Type <b>git remote add origin <i>github-repository-url</i></b><br><br />
&ensp; &ensp; &ensp; &ensp; <i>github-repository-url</i> can be found online. In your repository folder click on the green [<> Code] button then under the Local tab you'll see Clone HTTPS. Click the copy button to paste the <br />
address into the line of code above<br><br><br />
<br />
&ensp; 4) On your local computer, merge the two repositories (local and online):<br><br />
&ensp; &ensp; - Type <b>git pull origin main</b><br><br />
&ensp; &ensp; &ensp; &ensp; This assumes the GitHub branch is named <i>main</i> in the repository you created online<br><br><br />
<br />
<br />
&ensp; 5) On your local computer, add files to track:<br><br />
&ensp; &ensp; - Type <b>git add .</b><br><br><br />
<br />
&ensp; 6) On your local computer, commit that add:<br><br />
&ensp; &ensp; - Type <b>git commit -m "Message here"</b><br><br />
&ensp; &ensp; &ensp; &ensp; Change <i>Message here</i> to a brief description of the reason for the commit (ex: Initial commit). Make sure to keep ""<br><br><br />
<br />
&ensp; 7) On your local computer, change (if required) the branch name to the name listed in the online repository:<br><br />
&ensp; &ensp; - Typing <b>git branch</b> tells you the name(s) of the branch(es) with the current one having a * next to it<br><br />
&ensp; &ensp; - If you need to modify your local computer's branch name use <b>git branch -M main</b> where <i>main</i> is the name to change the branch to<br><br />
&ensp; &ensp; - Use <b>git branch</b> to verify the change<br><br><br />
<br />
&ensp; 8) On your local computer, push your commit:<br><br />
&ensp; &ensp; - Type <b>git push -u origin main</b><br><br />
&ensp; &ensp; &ensp; &ensp; You'll need to enter your GitHub profile name and your Personal Access Token to complete the push<br><br><br />
&ensp; &ensp; - The purpose of the <i>-u</i> flag is to establish an upstream relationship between the local branch and the specified remote branch<br><br />
&emsp; &nbsp; &nbsp; This is typically done on the initial push to a remote repository. After that, you don't need to use the -u flag again for subsequent pushes to the same branch<br><br><br />
<br />
&ensp; 9) At this point your online GitHub repository should be the same as the working folder on your local computer.<br><br />
&emsp; &nbsp; You can now continue to code and push/pull to GitHub as needed to track/update changes. Good luck, if it doesn't work don't blame me ... I only work here :) <br><br />
<br />
</li><br />
<br />
<br />
<br />
<br />
<!-- For spacing: &nbsp; OR <br> &ensp; OR <br> &emsp; OR <br> --><br />
<!-- Smaller indent to Larger indent --></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=GitHub&diff=36412GitHub2023-06-04T20:40:52Z<p>Mcintyre: /* The Extras */</p>
<hr />
<div><font size="3">GitHub is a web-based platform that provides hosting of coding repositories. It offers a centralized location for people to store, manage, and allow collaboration on their code. It is especially useful for version control and project tracking. The following information is geared towards linking gluey annex repositories with GitHub, but can easily be used to link your home computer to a GitHub repository. This wiki page is being updated as the author learns how to use GitHub, so if you know a better, more efficient way to accomplish a task then by all means please do it that way (... and add an addendum to this page if you have a login).</font><br />
<br />
== <u><i>The Setup</i></u> ==<br />
<ol><br />
<!-- Step 1 --><br />
<li>Sign up for a GitHub account by going to the [https://github.com/ GitHub website] and create a new account<br><i>- If you do not make your email address public you will have problems pushing your code later</i></li><br><br />
<br />
<!-- Step 2 --><br />
<li>Once you're logged in, click on the "+" sign at the top-right corner of the GitHub homepage and select "New repository" to create a new repository. Give your repository a name and provide a description.</li><br />
<ul><br />
<li>The repository name will be your folder name on gluey (see below)</li><br />
<li>Repository description is optional</li><br />
<li>Repository Setting:</li><br />
<ul><br />
<li>Private vs. Public</li><br />
<li>License (optional) - MIT License is well known and least restrictive</li><br />
<li>You can add a README file</li><br />
<li>You can also rename the main branch (this must be done before the repository is created, changing the name will change all subsequent repositories that are made in the future)</li><br />
<li>And more ...</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 3 --><br />
<li>Once the repository is setup online, add a Personal Access Token</li><br />
<ul><br />
<li>At the top-right of the GitHub website click on the pull-down and select "Settings"</li><br />
<li>On the left select "Developer settings" located at the bottom </li><br />
<li>Then on the left select "Personal access tokens"</li><br />
<li>Select "Fine-grained tokens" or "Tokens (classic)", I did the prior one</li><br />
<ul><br />
<li>For the Fine-grained token you will need to select which permissions you'd like to allow (not sure about the classic token)</li><br />
<li>Select a period for the token to be valid, upto 90 days maximum (I believe)</li><br />
<li>Once complete it will provide you with the token you can copy, this will be used in place of your password later</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 4 --><br />
<li>Clone your repository</li><br />
<ul><br />
<li>Log in to gluey using a VNC and navigate to the location in your annex where you'll be working</li><br />
<ul><br />
<li>You can do the same for your home computer, you'll just need to open a terminal or command prompt and navigate to the directory where you want to store your code</li><br />
</ul><br />
<li>Use the command:<br><br />
<b>git clone https&#58;&#47;&#47;github&#46;com&#47;<i>your-username</i>&#47;<i>your-repository</i>&#46;git</b><br> <br />
<i>&ensp; - Make sure to replace "your-username" with your GitHub username and "your-repository" with the name of your repository</i></li><br />
<li>You will now need to login. Use your <u>GitHub Username</u>, but make sure to use the <u>Personal Access Token</u> you created earlier and <b><u>NOT</u></b> your GitHub password</li><br />
</ul><br><br />
<br />
<!-- Step 5 --><br />
<li>At this point you should have a new folder in your annex with the name of your GitHub repository</li><br />
<ul><br />
<li>Confirm that the remote repository is correctly added, use the command:<br> <br />
<b>git remote -v</b><br></li><br />
<li>If needed, you can link the local repository to the remote repository using:<br> <br />
<b>git remote add origin <i>repository-url</i></b><br></li><br />
</ul><br><br />
<br />
<!-- Step 6 --><br />
<li>To switch to or determine a branch in Git, you can use the git checkout command:<br />
<ul><br />
<li>Determine the name of the branch you want to switch to via:<br> <br />
<b>git branch</b><br> <br />
<i>&ensp; - It will show all branches available and indicate your current branch with a * </i><br></li><br />
<li>Create a new branch using: <br> <br />
<b>git branch <i>new-branch-name</i></b> </li><br />
<li>Switch to that branch and work in it via:<br><br />
<b>git checkout <i>new-branch-name</i></b> <br></li><br><br />
<li>The two steps above can be combined:<br> <br />
<b>git checkout -b <i>new-branch-name</i></b> <br><br />
&ensp; <i>- This will <u>create and switch</u> to the new branch in one step</i></li><br><br />
</ul><br />
<br />
<!-- Step 7 --><br />
<li>Add files/folders to your directory</li><br><br />
<br />
<!-- Step 8 --><br />
<li>When you're ready to save, make sure you are in the root directory of your repository or the directory where the new folder you want to save is located. Then use the git add command to add the new folder and its contents to <br />
the staging area. Run the following command:<br><br />
<b>git add <i>folder-name</i></b><br><br />
<i>&ensp;- Adds the specified file or folder</i><br><br />
&emsp; OR <br><br />
<b>git add .</b> <br><br />
<i>&ensp;- Adds all new files and folders in the current directory recursively, does not add higher directory information</i><br><br />
&emsp; OR <br><br />
<b>git add -A</b> <br><br />
<i>&ensp;- Adds all files: new, modified, and deleted files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br />
&emsp; OR <br><br />
<b>git add -u</b> <br><br />
<i>&ensp;- Adds modified and deleted files only. Excludes new files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br><br />
For a more detailed description of <i>git add</i> go to: https://github.com/git-guides/git-add</li><br><br />
<br />
<!-- Step 9 --><br />
<li>Once the new folder/file is added to the staging area, you can commit the changes using the git commit command:<br> <b>git commit -m "<i>Commit message</i>"</b> <br><br />
<i>&ensp; - Replace Commit message with a descriptive message summarizing the changes you made. Keep " " around your message</i></li><br><br />
<br />
<!-- Step 10 --><br />
<li>After committing the changes (on your local machine), you can push them to the remote repository on GitHub using the git push command:<br> <br />
<b>git push origin <i>branch-name</i></b><br><br />
<i>&ensp; - Replace branch-name with the name of the branch you want to push to (e.g., main)</i><br><br />
<i>&ensp; - You will need to login with your Username and Personal Access Token</i></li><br><br />
</ol><br />
<br />
== <u><i>The Extras</i></u> ==<br />
<ul><br />
<!-- 0 --><br />
<li>For more information on common git commands, check out the links in the header at the top of the Git Guides webpage (https://github.com/git-guides/git-add)<br><br />
&ensp; - This site is a good starting point for common questions</li><br><br />
<br />
<!-- 1 --><br />
<li><b>git status</b><br><br />
&ensp; - This command shows the branch you're on, what files are in the working or staging directory, and other important information<br><br />
&emsp; <u>Example</u>:<br><br />
<pre> mcintyre@gluey/nfs/direct/annex/mcintyre/GitRepo/Radphi_pi02gp/RUN0<br />
$ git status<br />
# On branch PI0<br />
# Untracked files:<br />
# (use &quot;git add &lt;file&gt;...&quot; to include in what will be committed)<br />
#<br />
# STEP6/<br />
# STEP7/<br />
nothing added to commit but untracked files present (use &quot;git add&quot; to track)<br />
</pre><br />
</li><br><br />
<br />
<!-- 2 --><br />
<li><b>git reset</b><br><br />
&ensp; - This command unstages all changes (e.g. all <i>git add</i> performed before a <i>git commit</i>)<br></li><br />
<b>git reset <i>file-name</i></b><br><br />
&ensp; - This command undoes <i>git add</i> for uncommited changes to file <i>file-name</i><br><br><br />
<br />
<!-- 3 --><br />
<li><u>Adding a repository from your local computer to GitHub</u><br><br />
&ensp; 1) On your local computer, initialize the folder you want to adds as a repository:<br><br />
&ensp; &ensp; - Use <b>cd</b> to navigate to the folder that contains the work you'd like to track/backup<br><br />
&ensp; &ensp; - Type <b>git init</b> to initialize the folder for Git tracking<br><br />
&ensp; &ensp; - Type <b>touch .gitignore</b> to create a blank file in that folder, which can later be modify to specify files or types of files you don't want to track (<i>optional step</i>)<br><br><br />
<br />
&ensp; 2) Go to https://github.com/ , login, and create a repository as described above. Name the repository the same as your working folder you did the git init command in<br><br><br />
<br />
&ensp; 3) On your local computer link your working folder to the GitHub repsoitory:<br><br />
&ensp; &ensp; - Type <b>git remote add origin <i>github-repository-url</i></b><br><br />
&ensp; &ensp; &ensp; &ensp; <i>github-repository-url</i> can be found online. In your repository folder click on the green [<> Code] button then under the Local tab you'll see Clone HTTPS. Click the copy button to paste the <br />
address into the line of code above<br><br><br />
<br />
&ensp; 4) On your local computer, merge the two repositories (local and online):<br><br />
&ensp; &ensp; - Type <b>git pull origin main</b><br><br />
&ensp; &ensp; &ensp; &ensp; This assumes the GitHub branch is named <i>main</i> in the repository you created online<br><br><br />
<br />
<br />
&ensp; 5) On your local computer, add files to track:<br><br />
&ensp; &ensp; - Type <b>git add .</b><br><br><br />
<br />
&ensp; 6) On your local computer, commit that add:<br><br />
&ensp; &ensp; - Type <b>git commit -m "Message here"</b><br><br />
&ensp; &ensp; &ensp; &ensp; Change <i>Message here</i> to a brief description of the reason for the commit (ex: Initial commit). Make sure to keep ""<br><br><br />
<br />
&ensp; 7) On your local computer, change (if required) the branch name to the name listed in the online repository:<br><br />
&ensp; &ensp; - Typing <b>git branch</b> tells you the name(s) of the branch(es) with the current one having a * next to it<br><br />
&ensp; &ensp; - If you need to modify your local computer's branch name use <b>git branch -M main</b> where <i>main</i> is the name to change the branch to<br><br />
&ensp; &ensp; - Use <b>git branch</b> to verify the change<br><br><br />
<br />
&ensp; 8) On your local computer, push your commit:<br><br />
&ensp; &ensp; - Type <b>git push -u origin main</b><br><br />
&ensp; &ensp; &ensp; &ensp; You'll need to enter your GitHub profile name and your Personal Access Token to complete the push<br><br><br />
&ensp; &ensp; - The purpose of the <i>-u</i> flag is to establish an upstream relationship between the local branch and the specified remote branch<br><br />
&emsp; &nbsp; &nbsp; This is typically done on the initial push to a remote repository<br><br />
&emsp; &nbsp; &nbsp; After that, you don't need to use the -u flag again for subsequent pushes to the same branch<br><br><br />
<br />
&ensp; 9) At this point your online GitHub repository should be the same as the working folder on your local computer.<br><br />
&emsp; &nbsp; You can now continue to code and push/pull to GitHub as needed to track/update changes. Good luck, if it doesn't work don't blame me ... I only work here :) <br><br />
<br />
</li><br />
<br />
<br />
<br />
<br />
<!-- For spacing: &nbsp; OR <br> &ensp; OR <br> &emsp; OR <br> --><br />
<!-- Smaller indent to Larger indent --></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=GitHub&diff=36411GitHub2023-06-04T20:18:15Z<p>Mcintyre: /* The Extras */</p>
<hr />
<div><font size="3">GitHub is a web-based platform that provides hosting of coding repositories. It offers a centralized location for people to store, manage, and allow collaboration on their code. It is especially useful for version control and project tracking. The following information is geared towards linking gluey annex repositories with GitHub, but can easily be used to link your home computer to a GitHub repository. This wiki page is being updated as the author learns how to use GitHub, so if you know a better, more efficient way to accomplish a task then by all means please do it that way (... and add an addendum to this page if you have a login).</font><br />
<br />
== <u><i>The Setup</i></u> ==<br />
<ol><br />
<!-- Step 1 --><br />
<li>Sign up for a GitHub account by going to the [https://github.com/ GitHub website] and create a new account<br><i>- If you do not make your email address public you will have problems pushing your code later</i></li><br><br />
<br />
<!-- Step 2 --><br />
<li>Once you're logged in, click on the "+" sign at the top-right corner of the GitHub homepage and select "New repository" to create a new repository. Give your repository a name and provide a description.</li><br />
<ul><br />
<li>The repository name will be your folder name on gluey (see below)</li><br />
<li>Repository description is optional</li><br />
<li>Repository Setting:</li><br />
<ul><br />
<li>Private vs. Public</li><br />
<li>License (optional) - MIT License is well known and least restrictive</li><br />
<li>You can add a README file</li><br />
<li>You can also rename the main branch (this must be done before the repository is created, changing the name will change all subsequent repositories that are made in the future)</li><br />
<li>And more ...</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 3 --><br />
<li>Once the repository is setup online, add a Personal Access Token</li><br />
<ul><br />
<li>At the top-right of the GitHub website click on the pull-down and select "Settings"</li><br />
<li>On the left select "Developer settings" located at the bottom </li><br />
<li>Then on the left select "Personal access tokens"</li><br />
<li>Select "Fine-grained tokens" or "Tokens (classic)", I did the prior one</li><br />
<ul><br />
<li>For the Fine-grained token you will need to select which permissions you'd like to allow (not sure about the classic token)</li><br />
<li>Select a period for the token to be valid, upto 90 days maximum (I believe)</li><br />
<li>Once complete it will provide you with the token you can copy, this will be used in place of your password later</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 4 --><br />
<li>Clone your repository</li><br />
<ul><br />
<li>Log in to gluey using a VNC and navigate to the location in your annex where you'll be working</li><br />
<ul><br />
<li>You can do the same for your home computer, you'll just need to open a terminal or command prompt and navigate to the directory where you want to store your code</li><br />
</ul><br />
<li>Use the command:<br><br />
<b>git clone https&#58;&#47;&#47;github&#46;com&#47;<i>your-username</i>&#47;<i>your-repository</i>&#46;git</b><br> <br />
<i>&ensp; - Make sure to replace "your-username" with your GitHub username and "your-repository" with the name of your repository</i></li><br />
<li>You will now need to login. Use your <u>GitHub Username</u>, but make sure to use the <u>Personal Access Token</u> you created earlier and <b><u>NOT</u></b> your GitHub password</li><br />
</ul><br><br />
<br />
<!-- Step 5 --><br />
<li>At this point you should have a new folder in your annex with the name of your GitHub repository</li><br />
<ul><br />
<li>Confirm that the remote repository is correctly added, use the command:<br> <br />
<b>git remote -v</b><br></li><br />
<li>If needed, you can link the local repository to the remote repository using:<br> <br />
<b>git remote add origin <i>repository-url</i></b><br></li><br />
</ul><br><br />
<br />
<!-- Step 6 --><br />
<li>To switch to or determine a branch in Git, you can use the git checkout command:<br />
<ul><br />
<li>Determine the name of the branch you want to switch to via:<br> <br />
<b>git branch</b><br> <br />
<i>&ensp; - It will show all branches available and indicate your current branch with a * </i><br></li><br />
<li>Create a new branch using: <br> <br />
<b>git branch <i>new-branch-name</i></b> </li><br />
<li>Switch to that branch and work in it via:<br><br />
<b>git checkout <i>new-branch-name</i></b> <br></li><br><br />
<li>The two steps above can be combined:<br> <br />
<b>git checkout -b <i>new-branch-name</i></b> <br><br />
&ensp; <i>- This will <u>create and switch</u> to the new branch in one step</i></li><br><br />
</ul><br />
<br />
<!-- Step 7 --><br />
<li>Add files/folders to your directory</li><br><br />
<br />
<!-- Step 8 --><br />
<li>When you're ready to save, make sure you are in the root directory of your repository or the directory where the new folder you want to save is located. Then use the git add command to add the new folder and its contents to <br />
the staging area. Run the following command:<br><br />
<b>git add <i>folder-name</i></b><br><br />
<i>&ensp;- Adds the specified file or folder</i><br><br />
&emsp; OR <br><br />
<b>git add .</b> <br><br />
<i>&ensp;- Adds all new files and folders in the current directory recursively, does not add higher directory information</i><br><br />
&emsp; OR <br><br />
<b>git add -A</b> <br><br />
<i>&ensp;- Adds all files: new, modified, and deleted files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br />
&emsp; OR <br><br />
<b>git add -u</b> <br><br />
<i>&ensp;- Adds modified and deleted files only. Excludes new files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br><br />
For a more detailed description of <i>git add</i> go to: https://github.com/git-guides/git-add</li><br><br />
<br />
<!-- Step 9 --><br />
<li>Once the new folder/file is added to the staging area, you can commit the changes using the git commit command:<br> <b>git commit -m "<i>Commit message</i>"</b> <br><br />
<i>&ensp; - Replace Commit message with a descriptive message summarizing the changes you made. Keep " " around your message</i></li><br><br />
<br />
<!-- Step 10 --><br />
<li>After committing the changes (on your local machine), you can push them to the remote repository on GitHub using the git push command:<br> <br />
<b>git push origin <i>branch-name</i></b><br><br />
<i>&ensp; - Replace branch-name with the name of the branch you want to push to (e.g., main)</i><br><br />
<i>&ensp; - You will need to login with your Username and Personal Access Token</i></li><br><br />
</ol><br />
<br />
== <u><i>The Extras</i></u> ==<br />
<ul><br />
<!-- 0 --><br />
<li>For more information on common git commands, check out the links in the header at the top of the Git Guides webpage (https://github.com/git-guides/git-add)<br><br />
&ensp; - This site is a good starting point for common questions</li><br><br />
<br />
<!-- 1 --><br />
<li><b>git status</b><br><br />
&ensp; - This command shows the branch you're on, what files are in the working or staging directory, and other important information<br><br />
&emsp; <u>Example</u>:<br><br />
<pre> mcintyre@gluey/nfs/direct/annex/mcintyre/GitRepo/Radphi_pi02gp/RUN0<br />
$ git status<br />
# On branch PI0<br />
# Untracked files:<br />
# (use &quot;git add &lt;file&gt;...&quot; to include in what will be committed)<br />
#<br />
# STEP6/<br />
# STEP7/<br />
nothing added to commit but untracked files present (use &quot;git add&quot; to track)<br />
</pre><br />
</li><br><br />
<br />
<!-- 2 --><br />
<li><b>git reset</b><br><br />
&ensp; - This command unstages all changes (e.g. all <i>git add</i> performed before a <i>git commit</i>)<br></li><br />
<b>git reset <i>file-name</i></b><br><br />
&ensp; - This command undoes <i>git add</i> for uncommited changes to file <i>file-name</i><br><br><br />
<br />
<!-- 3 --><br />
<li><u>Adding a repository from your local computer to GitHub</u><br><br />
&ensp; 1) On your local computer, initialize the folder you want to adds as a repository:<br><br />
&ensp; &ensp; - Use <b>cd</b> to navigate to the folder that contains the work you'd like to track/backup<br><br />
&ensp; &ensp; - Type <b>git init</b> to initialize the folder for Git tracking<br><br />
&ensp; &ensp; - Type <b>touch .gitignore</b> to create a blank file in that folder, which can later be modify to specify files or types of files you don't want to track (<i>optional step</i>)<br><br><br />
<br />
&ensp; 2) Go to https://github.com/ , login, and create a repository as described above. Name the repository the same as your working folder you did the git init command in<br><br><br />
<br />
&ensp; 3) On your local computer link your working folder to the GitHub repsoitory:<br><br />
&ensp; &ensp; - Type <b>git remote add origin <i>github-repository-url</i></b><br><br />
&ensp; &ensp; &ensp; &ensp; <i>github-repository-url</i> can be found online. In your repository folder click on the green [<> Code] button then under the Local tab you'll see Clone HTTPS. Click the copy button to paste the <br />
address into the line of code above<br><br><br />
<br />
&ensp; 4) On your local computer, merge the two repositories (local and online):<br><br />
&ensp; &ensp; - Type <b>git pull origin main</b><br><br />
&ensp; &ensp; &ensp; &ensp; This assumes the GitHub branch is named <i>main</i> in the repository you created online<br><br><br />
<br />
<br />
&ensp; 5) On your local computer, add files to track:<br><br />
&ensp; &ensp; - Type <b>git add .</b><br><br><br />
<br />
&ensp; 6) On your local computer, commit that add:<br><br />
&ensp; &ensp; - Type <b>git commit -m "Message here"</b><br><br />
&ensp; &ensp; &ensp; &ensp; Change <i>Message here</i> to a brief description of the reason for the commit (ex: Initial commit). Make sure to keep ""<br><br><br />
<br />
&ensp; 7) On your local computer, change (if required) the branch name to the name listed in the online repository:<br><br />
&ensp; &ensp; - Typing <b>git branch</b> tells you the name(s) of the branch(es) with the current one having a * next to it<br><br />
&ensp; &ensp; - If you need to modify your local computer's branch name use <b>git branch -M main</b> where <i>main</i> is the name to change the branch to<br><br />
&ensp; &ensp; - Use <b>git branch</b> to verify the change<br><br><br />
<br />
&ensp; 8) On your local computer, push your commit:<br><br />
&ensp; &ensp; - Type <b>git push -u origin main</b><br><br />
&ensp; &ensp; &ensp; &ensp; You'll need to enter your GitHub profile name and your Personal Access Token to complete the push<br><br><br />
<br />
&ensp; 9) At this point your online GitHub repository should be the same as the working folder on your local computer.<br><br />
&emsp; &nbsp; You can now continue to code and push/pull to GitHub as needed to track/update changes. Good luck, if it doesn't work don't blame me ... I only work here :) <br><br />
<br />
</li><br />
<br />
<br />
<br />
<br />
<!-- For spacing: &nbsp; OR <br> &ensp; OR <br> &emsp; OR <br> --><br />
<!-- Smaller indent to Larger indent --></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=GitHub&diff=36410GitHub2023-06-04T20:12:29Z<p>Mcintyre: </p>
<hr />
<div><font size="3">GitHub is a web-based platform that provides hosting of coding repositories. It offers a centralized location for people to store, manage, and allow collaboration on their code. It is especially useful for version control and project tracking. The following information is geared towards linking gluey annex repositories with GitHub, but can easily be used to link your home computer to a GitHub repository. This wiki page is being updated as the author learns how to use GitHub, so if you know a better, more efficient way to accomplish a task then by all means please do it that way (... and add an addendum to this page if you have a login).</font><br />
<br />
== <u><i>The Setup</i></u> ==<br />
<ol><br />
<!-- Step 1 --><br />
<li>Sign up for a GitHub account by going to the [https://github.com/ GitHub website] and create a new account<br><i>- If you do not make your email address public you will have problems pushing your code later</i></li><br><br />
<br />
<!-- Step 2 --><br />
<li>Once you're logged in, click on the "+" sign at the top-right corner of the GitHub homepage and select "New repository" to create a new repository. Give your repository a name and provide a description.</li><br />
<ul><br />
<li>The repository name will be your folder name on gluey (see below)</li><br />
<li>Repository description is optional</li><br />
<li>Repository Setting:</li><br />
<ul><br />
<li>Private vs. Public</li><br />
<li>License (optional) - MIT License is well known and least restrictive</li><br />
<li>You can add a README file</li><br />
<li>You can also rename the main branch (this must be done before the repository is created, changing the name will change all subsequent repositories that are made in the future)</li><br />
<li>And more ...</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 3 --><br />
<li>Once the repository is setup online, add a Personal Access Token</li><br />
<ul><br />
<li>At the top-right of the GitHub website click on the pull-down and select "Settings"</li><br />
<li>On the left select "Developer settings" located at the bottom </li><br />
<li>Then on the left select "Personal access tokens"</li><br />
<li>Select "Fine-grained tokens" or "Tokens (classic)", I did the prior one</li><br />
<ul><br />
<li>For the Fine-grained token you will need to select which permissions you'd like to allow (not sure about the classic token)</li><br />
<li>Select a period for the token to be valid, upto 90 days maximum (I believe)</li><br />
<li>Once complete it will provide you with the token you can copy, this will be used in place of your password later</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 4 --><br />
<li>Clone your repository</li><br />
<ul><br />
<li>Log in to gluey using a VNC and navigate to the location in your annex where you'll be working</li><br />
<ul><br />
<li>You can do the same for your home computer, you'll just need to open a terminal or command prompt and navigate to the directory where you want to store your code</li><br />
</ul><br />
<li>Use the command:<br><br />
<b>git clone https&#58;&#47;&#47;github&#46;com&#47;<i>your-username</i>&#47;<i>your-repository</i>&#46;git</b><br> <br />
<i>&ensp; - Make sure to replace "your-username" with your GitHub username and "your-repository" with the name of your repository</i></li><br />
<li>You will now need to login. Use your <u>GitHub Username</u>, but make sure to use the <u>Personal Access Token</u> you created earlier and <b><u>NOT</u></b> your GitHub password</li><br />
</ul><br><br />
<br />
<!-- Step 5 --><br />
<li>At this point you should have a new folder in your annex with the name of your GitHub repository</li><br />
<ul><br />
<li>Confirm that the remote repository is correctly added, use the command:<br> <br />
<b>git remote -v</b><br></li><br />
<li>If needed, you can link the local repository to the remote repository using:<br> <br />
<b>git remote add origin <i>repository-url</i></b><br></li><br />
</ul><br><br />
<br />
<!-- Step 6 --><br />
<li>To switch to or determine a branch in Git, you can use the git checkout command:<br />
<ul><br />
<li>Determine the name of the branch you want to switch to via:<br> <br />
<b>git branch</b><br> <br />
<i>&ensp; - It will show all branches available and indicate your current branch with a * </i><br></li><br />
<li>Create a new branch using: <br> <br />
<b>git branch <i>new-branch-name</i></b> </li><br />
<li>Switch to that branch and work in it via:<br><br />
<b>git checkout <i>new-branch-name</i></b> <br></li><br><br />
<li>The two steps above can be combined:<br> <br />
<b>git checkout -b <i>new-branch-name</i></b> <br><br />
&ensp; <i>- This will <u>create and switch</u> to the new branch in one step</i></li><br><br />
</ul><br />
<br />
<!-- Step 7 --><br />
<li>Add files/folders to your directory</li><br><br />
<br />
<!-- Step 8 --><br />
<li>When you're ready to save, make sure you are in the root directory of your repository or the directory where the new folder you want to save is located. Then use the git add command to add the new folder and its contents to <br />
the staging area. Run the following command:<br><br />
<b>git add <i>folder-name</i></b><br><br />
<i>&ensp;- Adds the specified file or folder</i><br><br />
&emsp; OR <br><br />
<b>git add .</b> <br><br />
<i>&ensp;- Adds all new files and folders in the current directory recursively, does not add higher directory information</i><br><br />
&emsp; OR <br><br />
<b>git add -A</b> <br><br />
<i>&ensp;- Adds all files: new, modified, and deleted files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br />
&emsp; OR <br><br />
<b>git add -u</b> <br><br />
<i>&ensp;- Adds modified and deleted files only. Excludes new files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br><br />
For a more detailed description of <i>git add</i> go to: https://github.com/git-guides/git-add</li><br><br />
<br />
<!-- Step 9 --><br />
<li>Once the new folder/file is added to the staging area, you can commit the changes using the git commit command:<br> <b>git commit -m "<i>Commit message</i>"</b> <br><br />
<i>&ensp; - Replace Commit message with a descriptive message summarizing the changes you made. Keep " " around your message</i></li><br><br />
<br />
<!-- Step 10 --><br />
<li>After committing the changes (on your local machine), you can push them to the remote repository on GitHub using the git push command:<br> <br />
<b>git push origin <i>branch-name</i></b><br><br />
<i>&ensp; - Replace branch-name with the name of the branch you want to push to (e.g., main)</i><br><br />
<i>&ensp; - You will need to login with your Username and Personal Access Token</i></li><br><br />
</ol><br />
<br />
== <u><i>The Extras</i></u> ==<br />
<ul><br />
<!-- 0 --><br />
<li>For information on common git commands, see the top of the Git Guides webpage (https://github.com/git-guides/git-add)</li><br><br><br />
<br />
<!-- 1 --><br />
<li><b>git status</b><br><br />
&ensp; - This command shows the branch you're on, what files are in the working or staging directory, and other important information<br><br />
&emsp; <u>Example</u>:<br><br />
<pre> mcintyre@gluey/nfs/direct/annex/mcintyre/GitRepo/Radphi_pi02gp/RUN0<br />
$ git status<br />
# On branch PI0<br />
# Untracked files:<br />
# (use &quot;git add &lt;file&gt;...&quot; to include in what will be committed)<br />
#<br />
# STEP6/<br />
# STEP7/<br />
nothing added to commit but untracked files present (use &quot;git add&quot; to track)<br />
</pre><br />
</li><br><br />
<br />
<!-- 2 --><br />
<li><b>git reset</b><br><br />
&ensp; - This command unstages all changes (e.g. all <i>git add</i> performed before a <i>git commit</i>)<br></li><br />
<b>git reset <i>file-name</i></b><br><br />
&ensp; - This command undoes <i>git add</i> for uncommited changes to file <i>file-name</i><br><br><br />
<br />
<!-- 3 --><br />
<li><u>Adding a repository from your local computer to GitHub</u><br><br />
&ensp; 1) On your local computer, initialize the folder you want to adds as a repository:<br><br />
&ensp; &ensp; - Use <b>cd</b> to navigate to the folder that contains the work you'd like to track/backup<br><br />
&ensp; &ensp; - Type <b>git init</b> to initialize the folder for Git tracking<br><br />
&ensp; &ensp; - Type <b>touch .gitignore</b> to create a blank file in that folder, which can later be modify to specify files or types of files you don't want to track (<i>optional step</i>)<br><br><br />
<br />
&ensp; 2) Go to https://github.com/ , login, and create a repository as described above. Name the repository the same as your working folder you did the git init command in<br><br><br />
<br />
&ensp; 3) On your local computer link your working folder to the GitHub repsoitory:<br><br />
&ensp; &ensp; - Type <b>git remote add origin <i>github-repository-url</i></b><br><br />
&ensp; &ensp; &ensp; &ensp; <i>github-repository-url</i> can be found online. In your repository folder click on the green [<> Code] button then under the Local tab you'll see Clone HTTPS. Click the copy button to paste the <br />
address into the line of code above<br><br><br />
<br />
&ensp; 4) On your local computer, merge the two repositories (local and online):<br><br />
&ensp; &ensp; - Type <b>git pull origin main</b><br><br />
&ensp; &ensp; &ensp; &ensp; This assumes the GitHub branch is named <i>main</i> in the repository you created online<br><br><br />
<br />
<br />
&ensp; 5) On your local computer, add files to track:<br><br />
&ensp; &ensp; - Type <b>git add .</b><br><br><br />
<br />
&ensp; 6) On your local computer, commit that add:<br><br />
&ensp; &ensp; - Type <b>git commit -m "Message here"</b><br><br />
&ensp; &ensp; &ensp; &ensp; Change <i>Message here</i> to a brief description of the reason for the commit (ex: Initial commit). Make sure to keep ""<br><br><br />
<br />
&ensp; 7) On your local computer, change (if required) the branch name to the name listed in the online repository:<br><br />
&ensp; &ensp; - Typing <b>git branch</b> tells you the name(s) of the branch(es) with the current one having a * next to it<br><br />
&ensp; &ensp; - If you need to modify your local computer's branch name use <b>git branch -M main</b> where <i>main</i> is the name to change the branch to<br><br />
&ensp; &ensp; - Use <b>git branch</b> to verify the change<br><br><br />
<br />
&ensp; 8) On your local computer, push your commit:<br><br />
&ensp; &ensp; - Type <b>git push -u origin main</b><br><br />
&ensp; &ensp; &ensp; &ensp; You'll need to enter your GitHub profile name and your Personal Access Token to complete the push<br><br><br />
<br />
&ensp; 9) At this point your online GitHub repository should be the same as the working folder on your local computer.<br><br />
&emsp; &nbsp; You can now continue to code and push/pull to GitHub as needed to track/update changes. Good luck, if it doesn't work don't blame me ... I only work here :) <br><br />
<br />
</li><br />
<br />
<br />
<br />
<br />
<!-- For spacing: &nbsp; OR <br> &ensp; OR <br> &emsp; OR <br> --><br />
<!-- Smaller indent to Larger indent --></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=GitHub&diff=36409GitHub2023-06-04T17:38:45Z<p>Mcintyre: /* The Extras */</p>
<hr />
<div><font size="3">GitHub is a web-based platform that provides hosting of coding repositories. It offers a centralized location for people to store, manage, and allow collaboration on their code. It is especially useful for version control and project tracking. The following information is geared towards linking gluey annex repositories with GitHub, but can easily be used to link your home computer to a GitHub repository. This wiki page is being updated as the author learns how to use GitHub, so if you know a better, more efficient way to accomplish a task then by all means please do it that way (... and add an addendum to this page if you have a login).</font><br />
<br />
== <u><i>The Setup</i></u> ==<br />
<ol><br />
<!-- Step 1 --><br />
<li>Sign up for a GitHub account by going to the [https://github.com/ GitHub website] and create a new account<br><i>- If you do not make your email address public you will have problems pushing your code later</i></li><br><br />
<br />
<!-- Step 2 --><br />
<li>Once you're logged in, click on the "+" sign at the top-right corner of the GitHub homepage and select "New repository" to create a new repository. Give your repository a name and provide a description.</li><br />
<ul><br />
<li>The repository name will be your folder name on gluey (see below)</li><br />
<li>Repository description is optional</li><br />
<li>Repository Setting:</li><br />
<ul><br />
<li>Private vs. Public</li><br />
<li>License (optional) - MIT License is well known and least restrictive</li><br />
<li>You can add a README file</li><br />
<li>You can also rename the main branch (this must be done before the repository is created, changing the name will change all subsequent repositories that are made in the future)</li><br />
<li>And more ...</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 3 --><br />
<li>Once the repository is setup online, add a Personal Access Token</li><br />
<ul><br />
<li>At the top-right of the GitHub website click on the pull-down and select "Settings"</li><br />
<li>On the left select "Developer settings" located at the bottom </li><br />
<li>Then on the left select "Personal access tokens"</li><br />
<li>Select "Fine-grained tokens" or "Tokens (classic)", I did the prior one</li><br />
<ul><br />
<li>For the Fine-grained token you will need to select which permissions you'd like to allow (not sure about the classic token)</li><br />
<li>Select a period for the token to be valid, upto 90 days maximum (I believe)</li><br />
<li>Once complete it will provide you with the token you can copy, this will be used in place of your password later</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 4 --><br />
<li>Clone your repository</li><br />
<ul><br />
<li>Log in to gluey using a VNC and navigate to the location in your annex where you'll be working</li><br />
<ul><br />
<li>You can do the same for your home computer, you'll just need to open a terminal or command prompt and navigate to the directory where you want to store your code</li><br />
</ul><br />
<li>Use the command:<br><br />
<b>git clone https&#58;&#47;&#47;github&#46;com&#47;<i>your-username</i>&#47;<i>your-repository</i>&#46;git</b><br> <br />
<i>&ensp; - Make sure to replace "your-username" with your GitHub username and "your-repository" with the name of your repository</i></li><br />
<li>You will now need to login. Use your <u>GitHub Username</u>, but make sure to use the <u>Personal Access Token</u> you created earlier and <b><u>NOT</u></b> your GitHub password</li><br />
</ul><br><br />
<br />
<!-- Step 5 --><br />
<li>At this point you should have a new folder in your annex with the name of your GitHub repository</li><br />
<ul><br />
<li>Confirm that the remote repository is correctly added, use the command:<br> <br />
<b>git remote -v</b><br></li><br />
<li>If needed, you can link the local repository to the remote repository using:<br> <br />
<b>git remote add origin <i>repository-url</i></b><br></li><br />
</ul><br><br />
<br />
<!-- Step 6 --><br />
<li>To switch to or determine a branch in Git, you can use the git checkout command:<br />
<ul><br />
<li>Determine the name of the branch you want to switch to via:<br> <br />
<b>git branch</b><br> <br />
<i>&ensp; - It will show all branches available and indicate your current branch with a * </i><br></li><br />
<li>Create a new branch using: <br> <br />
<b>git branch <i>new-branch-name</i></b> </li><br />
<li>Switch to that branch and work in it via:<br><br />
<b>git checkout <i>new-branch-name</i></b> <br></li><br><br />
<li>The two steps above can be combined:<br> <br />
<b>git checkout -b <i>new-branch-name</i></b> <br><br />
&ensp; <i>- This will <u>create and switch</u> to the new branch in one step</i></li><br><br />
</ul><br />
<br />
<!-- Step 7 --><br />
<li>Add files/folders to your directory</li><br><br />
<br />
<!-- Step 8 --><br />
<li>When you're ready to save, make sure you are in the root directory of your repository or the directory where the new folder you want to save is located. Then use the git add command to add the new folder and its contents to <br />
the staging area. Run the following command:<br><br />
<b>git add <i>folder-name</i></b><br><br />
<i>&ensp;- Adds the specified file or folder</i><br><br />
&emsp; OR <br><br />
<b>git add .</b> <br><br />
<i>&ensp;- Adds all new files and folders in the current directory recursively, does not add higher directory information</i><br><br />
&emsp; OR <br><br />
<b>git add -A</b> <br><br />
<i>&ensp;- Adds all files: new, modified, and deleted files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br />
&emsp; OR <br><br />
<b>git add -u</b> <br><br />
<i>&ensp;- Adds modified and deleted files only. Excludes new files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br><br />
For a more detailed description of <i>git add</i> go to: https://github.com/git-guides/git-add</li><br><br />
<br />
<!-- Step 9 --><br />
<li>Once the new folder/file is added to the staging area, you can commit the changes using the git commit command:<br> <b>git commit -m "<i>Commit message</i>"</b> <br><br />
<i>&ensp; - Replace Commit message with a descriptive message summarizing the changes you made. Keep " " around your message</i></li><br><br />
<br />
<!-- Step 10 --><br />
<li>After committing the changes (on your local machine), you can push them to the remote repository on GitHub using the git push command:<br> <br />
<b>git push origin <i>branch-name</i></b><br><br />
<i>&ensp; - Replace branch-name with the name of the branch you want to push to (e.g., main)</i><br><br />
<i>&ensp; - You will need to login with your Username and Personal Access Token</i></li><br><br />
</ol><br />
<br />
== <u><i>The Extras</i></u> ==<br />
<ul><br />
<!-- 1 --><br />
<li><b>git status</b><br><br />
&ensp; - This command shows the branch you're on, what files are in the working or staging directory, and other important information<br><br />
&emsp; <u>Example</u>:<br><br />
<pre> mcintyre@gluey/nfs/direct/annex/mcintyre/GitRepo/Radphi_pi02gp/RUN0<br />
$ git status<br />
# On branch PI0<br />
# Untracked files:<br />
# (use &quot;git add &lt;file&gt;...&quot; to include in what will be committed)<br />
#<br />
# STEP6/<br />
# STEP7/<br />
nothing added to commit but untracked files present (use &quot;git add&quot; to track)<br />
</pre><br />
</li><br><br />
<br />
<!-- 2 --><br />
<li><b>git reset</b><br><br />
&ensp; - This command unstages all changes (e.g. all <i>git add</i> performed before a <i>git commit</i>)<br></li><br />
<b>git reset <i>file-name</i></b><br><br />
&ensp; - This command undoes <i>git add</i> for uncommited changes to file <i>file-name</i><br><br><br />
<br />
<!-- 3 --><br />
<li><u>Adding a repository from your local computer to GitHub</u><br><br />
&ensp; 1) On your local computer, initialize the folder you want to adds as a repository:<br><br />
&ensp; &ensp; - Use <b>cd</b> to navigate to the folder that contains the work you'd like to track/backup<br><br />
&ensp; &ensp; - Type <b>git init</b> to initialize the folder for Git tracking<br><br />
&ensp; &ensp; - Type <b>touch .gitignore</b> to create a blank file in that folder, which can later be modify to specify files or types of files you don't want to track (<i>optional step</i>)<br><br><br />
<br />
&ensp; 2) Go to https://github.com/ , login, and create a repository as described above. Name the repository the same as your working folder you did the git init command in<br><br><br />
<br />
&ensp; 3) On your local computer link your working folder to the GitHub repsoitory:<br><br />
&ensp; &ensp; - Type <b>git remote add origin <i>github-repository-url</i></b><br><br />
&ensp; &ensp; &ensp; &ensp; <i>github-repository-url</i> can be found online. In your repository folder click on the green [<> Code] button then under the Local tab you'll see Clone HTTPS. Click the copy button to paste the <br />
address into the line of code above<br><br><br />
<br />
&ensp; 4) On your local computer, merge the two repositories (local and online):<br><br />
&ensp; &ensp; - Type <b>git pull origin main</b><br><br />
&ensp; &ensp; &ensp; &ensp; This assumes the GitHub branch is named <i>main</i> in the repository you created online<br><br><br />
<br />
<br />
&ensp; 5) On your local computer, add files to track:<br><br />
&ensp; &ensp; - Type <b>git add .</b><br><br><br />
<br />
&ensp; 6) On your local computer, commit that add:<br><br />
&ensp; &ensp; - Type <b>git commit -m "Message here"</b><br><br />
&ensp; &ensp; &ensp; &ensp; Change <i>Message here</i> to a brief description of the reason for the commit (ex: Initial commit). Make sure to keep ""<br><br><br />
<br />
&ensp; 7) On your local computer, change (if required) the branch name to the name listed in the online repository:<br><br />
&ensp; &ensp; - Typing <b>git branch</b> tells you the name(s) of the branch(es) with the current one having a * next to it<br><br />
&ensp; &ensp; - If you need to modify your local computer's branch name use <b>git branch -M main</b> where <i>main</i> is the name to change the branch to<br><br />
&ensp; &ensp; - Use <b>git branch</b> to verify the change<br><br><br />
<br />
&ensp; 8) On your local computer, push your commit:<br><br />
&ensp; &ensp; - Type <b>git push -u origin main</b><br><br />
&ensp; &ensp; &ensp; &ensp; You'll need to enter your GitHub profile name and your Personal Access Token to complete the push<br><br><br />
<br />
&ensp; 9) At this point your online GitHub repository should be the same as the working folder on your local computer.<br><br />
&emsp; &nbsp; You can now continue to code and push/pull to GitHub as needed to track/update changes. Good luck, if it doesn't work don't blame me ... I only work here :) <br><br />
<br />
</li><br />
<br />
<br />
<br />
<br />
<!-- For spacing: &nbsp; OR <br> &ensp; OR <br> &emsp; OR <br> --><br />
<!-- Smaller indent to Larger indent --></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=GitHub&diff=36408GitHub2023-06-04T17:25:17Z<p>Mcintyre: </p>
<hr />
<div><font size="3">GitHub is a web-based platform that provides hosting of coding repositories. It offers a centralized location for people to store, manage, and allow collaboration on their code. It is especially useful for version control and project tracking. The following information is geared towards linking gluey annex repositories with GitHub, but can easily be used to link your home computer to a GitHub repository. This wiki page is being updated as the author learns how to use GitHub, so if you know a better, more efficient way to accomplish a task then by all means please do it that way (... and add an addendum to this page if you have a login).</font><br />
<br />
== <u><i>The Setup</i></u> ==<br />
<ol><br />
<!-- Step 1 --><br />
<li>Sign up for a GitHub account by going to the [https://github.com/ GitHub website] and create a new account<br><i>- If you do not make your email address public you will have problems pushing your code later</i></li><br><br />
<br />
<!-- Step 2 --><br />
<li>Once you're logged in, click on the "+" sign at the top-right corner of the GitHub homepage and select "New repository" to create a new repository. Give your repository a name and provide a description.</li><br />
<ul><br />
<li>The repository name will be your folder name on gluey (see below)</li><br />
<li>Repository description is optional</li><br />
<li>Repository Setting:</li><br />
<ul><br />
<li>Private vs. Public</li><br />
<li>License (optional) - MIT License is well known and least restrictive</li><br />
<li>You can add a README file</li><br />
<li>You can also rename the main branch (this must be done before the repository is created, changing the name will change all subsequent repositories that are made in the future)</li><br />
<li>And more ...</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 3 --><br />
<li>Once the repository is setup online, add a Personal Access Token</li><br />
<ul><br />
<li>At the top-right of the GitHub website click on the pull-down and select "Settings"</li><br />
<li>On the left select "Developer settings" located at the bottom </li><br />
<li>Then on the left select "Personal access tokens"</li><br />
<li>Select "Fine-grained tokens" or "Tokens (classic)", I did the prior one</li><br />
<ul><br />
<li>For the Fine-grained token you will need to select which permissions you'd like to allow (not sure about the classic token)</li><br />
<li>Select a period for the token to be valid, upto 90 days maximum (I believe)</li><br />
<li>Once complete it will provide you with the token you can copy, this will be used in place of your password later</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 4 --><br />
<li>Clone your repository</li><br />
<ul><br />
<li>Log in to gluey using a VNC and navigate to the location in your annex where you'll be working</li><br />
<ul><br />
<li>You can do the same for your home computer, you'll just need to open a terminal or command prompt and navigate to the directory where you want to store your code</li><br />
</ul><br />
<li>Use the command:<br><br />
<b>git clone https&#58;&#47;&#47;github&#46;com&#47;<i>your-username</i>&#47;<i>your-repository</i>&#46;git</b><br> <br />
<i>&ensp; - Make sure to replace "your-username" with your GitHub username and "your-repository" with the name of your repository</i></li><br />
<li>You will now need to login. Use your <u>GitHub Username</u>, but make sure to use the <u>Personal Access Token</u> you created earlier and <b><u>NOT</u></b> your GitHub password</li><br />
</ul><br><br />
<br />
<!-- Step 5 --><br />
<li>At this point you should have a new folder in your annex with the name of your GitHub repository</li><br />
<ul><br />
<li>Confirm that the remote repository is correctly added, use the command:<br> <br />
<b>git remote -v</b><br></li><br />
<li>If needed, you can link the local repository to the remote repository using:<br> <br />
<b>git remote add origin <i>repository-url</i></b><br></li><br />
</ul><br><br />
<br />
<!-- Step 6 --><br />
<li>To switch to or determine a branch in Git, you can use the git checkout command:<br />
<ul><br />
<li>Determine the name of the branch you want to switch to via:<br> <br />
<b>git branch</b><br> <br />
<i>&ensp; - It will show all branches available and indicate your current branch with a * </i><br></li><br />
<li>Create a new branch using: <br> <br />
<b>git branch <i>new-branch-name</i></b> </li><br />
<li>Switch to that branch and work in it via:<br><br />
<b>git checkout <i>new-branch-name</i></b> <br></li><br><br />
<li>The two steps above can be combined:<br> <br />
<b>git checkout -b <i>new-branch-name</i></b> <br><br />
&ensp; <i>- This will <u>create and switch</u> to the new branch in one step</i></li><br><br />
</ul><br />
<br />
<!-- Step 7 --><br />
<li>Add files/folders to your directory</li><br><br />
<br />
<!-- Step 8 --><br />
<li>When you're ready to save, make sure you are in the root directory of your repository or the directory where the new folder you want to save is located. Then use the git add command to add the new folder and its contents to <br />
the staging area. Run the following command:<br><br />
<b>git add <i>folder-name</i></b><br><br />
<i>&ensp;- Adds the specified file or folder</i><br><br />
&emsp; OR <br><br />
<b>git add .</b> <br><br />
<i>&ensp;- Adds all new files and folders in the current directory recursively, does not add higher directory information</i><br><br />
&emsp; OR <br><br />
<b>git add -A</b> <br><br />
<i>&ensp;- Adds all files: new, modified, and deleted files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br />
&emsp; OR <br><br />
<b>git add -u</b> <br><br />
<i>&ensp;- Adds modified and deleted files only. Excludes new files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br><br />
For a more detailed description of <i>git add</i> go to: https://github.com/git-guides/git-add</li><br><br />
<br />
<!-- Step 9 --><br />
<li>Once the new folder/file is added to the staging area, you can commit the changes using the git commit command:<br> <b>git commit -m "<i>Commit message</i>"</b> <br><br />
<i>&ensp; - Replace Commit message with a descriptive message summarizing the changes you made. Keep " " around your message</i></li><br><br />
<br />
<!-- Step 10 --><br />
<li>After committing the changes (on your local machine), you can push them to the remote repository on GitHub using the git push command:<br> <br />
<b>git push origin <i>branch-name</i></b><br><br />
<i>&ensp; - Replace branch-name with the name of the branch you want to push to (e.g., main)</i><br><br />
<i>&ensp; - You will need to login with your Username and Personal Access Token</i></li><br><br />
</ol><br />
<br />
== <u><i>The Extras</i></u> ==<br />
<ul><br />
<!-- 1 --><br />
<li><b>git status</b><br><br />
&ensp; - This command shows the branch you're on, what files are in the working or staging directory, and other important information<br><br />
&emsp; <u>Example</u>:<br><br />
<pre> mcintyre@gluey/nfs/direct/annex/mcintyre/GitRepo/Radphi_pi02gp/RUN0<br />
$ git status<br />
# On branch PI0<br />
# Untracked files:<br />
# (use &quot;git add &lt;file&gt;...&quot; to include in what will be committed)<br />
#<br />
# STEP6/<br />
# STEP7/<br />
nothing added to commit but untracked files present (use &quot;git add&quot; to track)<br />
</pre><br />
</li><br><br />
<br />
<!-- 2 --><br />
<li><b>git reset</b><br><br />
&ensp; - This command unstages all changes (e.g. all <i>git add</i> performed before a <i>git commit</i>)<br></li><br />
<b>git reset <i>file-name</i></b><br><br />
&ensp; - This command undoes <i>git add</i> for uncommited changes to file <i>file-name</i><br><br><br />
<br />
<!-- 3 --><br />
<li><u>Adding a repository from your local computer to GitHub</u><br><br />
&ensp; 1) On your local computer, initialize the folder you want to adds as a repository:<br><br />
&ensp; &ensp; - <b>cd</b> to the folder that contains the work you'd like to track/backup<br><br />
&ensp; &ensp; - type <b>git init</b> to initialize the folder for Git tracking<br><br />
&ensp; &ensp; - type <b>touch .gitignore</b> to create a blank file in that folder, which can later be modify to specify files or types of files you don't want to track (<i>optional step</i>)<br><br><br />
<br />
&ensp; 2) Go to https://github.com/ , login, and create a repository as described above. Name the repository the same as your working folder you did the git init command in<br><br><br />
<br />
&ensp; 3) On your local computer link your working folder to the GitHub repsoitory:<br><br />
&ensp; &ensp; - <b>git remote add origin <i>github-repository-url</i></b><br><br />
&ensp; &ensp; &ensp; &ensp; <i>github-repository-url</i> can be found online. In your repository folder click on the green [<> Code] button then under the Local tab you'll see Clone HTTPS. Click the copy button to paste the <br />
address into the line of code above<br><br><br />
<br />
&ensp; 4) On your local computer, merge the two repositories (local and online):<br><br />
&ensp; &ensp; - <b>git pull origin main</b><br><br />
&ensp; &ensp; &ensp; &ensp; This assumes the GitHub branch is named <i>main</i> in the repository you created online<br><br><br />
<br />
<br />
&ensp; 5) On your local computer, add files to track:<br><br />
&ensp; &ensp; - <b>git add .</b><br><br><br />
<br />
&ensp; 6) On your local computer, commit that add:<br><br />
&ensp; &ensp; - <b>git commit -m "Message here"</b><br><br />
&ensp; &ensp; &ensp; &ensp; Change <i>Message here</i> to a brief description of the reason for the commit (ex: Initial commit). Make sure to keep ""<br><br><br />
<br />
&ensp; 7) On your local computer, change (if required) the branch name to the name listed in the online repository:<br><br />
&ensp; &ensp; - <b>git branch</b> tells you the name(s) of the branch(es) with the current one having a * next to it<br><br />
&ensp; &ensp; - If you need to modify your local computer's branch name use <b>git branch -M main</b> where <i>main</i> is the name to change the branch to<br><br />
&ensp; &ensp; - Use <b>git branch</b> to verify the change<br><br><br />
<br />
&ensp; 8) On your local computer, push your commit:<br><br />
&ensp; &ensp; - <b>git push -u origin main</b><br><br />
&ensp; &ensp; &ensp; &ensp; You'll need to enter your GitHub profile name and your Personal Access Token to complete the push<br><br><br />
<br />
&ensp; 9) At this point your online GitHub repository should be the same as the working folder on your local computer.<br><br />
&emsp; &nbsp; You can now continue to code and push/pull to GitHub as needed to track/update changes. Good luck, if it doesn't work don't blame me ... I only work here :) <br><br />
<br />
</li><br />
<br />
<br />
<br />
<br />
<!-- For spacing: &nbsp; OR <br> &ensp; OR <br> &emsp; OR <br> --><br />
<!-- Smaller indent to Larger indent --></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=GitHub&diff=36407GitHub2023-06-04T17:08:26Z<p>Mcintyre: /* The Extras */</p>
<hr />
<div><font size="3">GitHub is a web-based platform that provides hosting of coding repositories. It offers a centralized location for people to store, manage, and allow collaboration on their code. It is especially useful for version control and project tracking. The following information is geared towards linking gluey annex repositories with GitHub, but can easily be used to link your home computer to a GitHub repository. This wiki page is being updated as the author learns how to use GitHub, so if you know a better, more efficient way to accomplish a task then by all means please do it that way (... and add an addendum to this page if you have a login).</font><br />
<br />
== <u><i>The Setup</i></u> ==<br />
<ol><br />
<!-- Step 1 --><br />
<li>Sign up for a GitHub account by going to the [https://github.com/ GitHub website] and create a new account<br><i>- If you do not make your email address public you will have problems pushing your code later</i></li><br><br />
<br />
<!-- Step 2 --><br />
<li>Once you're logged in, click on the "+" sign at the top-right corner of the GitHub homepage and select "New repository" to create a new repository. Give your repository a name and provide a description.</li><br />
<ul><br />
<li>The repository name will be your folder name on gluey (see below)</li><br />
<li>Repository description is optional</li><br />
<li>Repository Setting:</li><br />
<ul><br />
<li>Private vs. Public</li><br />
<li>License (optional) - MIT License is well known and least restrictive</li><br />
<li>You can add a README file</li><br />
<li>You can also rename the main branch (this must be done before the repository is created, changing the name will change all subsequent repositories that are made in the future)</li><br />
<li>And more ...</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 3 --><br />
<li>Once the repository is setup online, add a Personal Access Token</li><br />
<ul><br />
<li>At the top-right of the GitHub website click on the pull-down and select "Settings"</li><br />
<li>On the left select "Developer settings" located at the bottom </li><br />
<li>Then on the left select "Personal access tokens"</li><br />
<li>Select "Fine-grained tokens" or "Tokens (classic)", I did the prior one</li><br />
<ul><br />
<li>For the Fine-grained token you will need to select which permissions you'd like to allow (not sure about the classic token)</li><br />
<li>Select a period for the token to be valid, upto 90 days maximum (I believe)</li><br />
<li>Once complete it will provide you with the token you can copy, this will be used in place of your password later</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 4 --><br />
<li>Clone your repository</li><br />
<ul><br />
<li>Log in to gluey using a VNC and navigate to the location in your annex where you'll be working</li><br />
<ul><br />
<li>You can do the same for your home computer, you'll just need to open a terminal or command prompt and navigate to the directory where you want to store your code</li><br />
</ul><br />
<li>Use the command:<br><br />
<b>git clone https&#58;&#47;&#47;github&#46;com&#47;<i>your-username</i>&#47;<i>your-repository</i>&#46;git</b><br> <br />
<i>&ensp; - Make sure to replace "your-username" with your GitHub username and "your-repository" with the name of your repository</i></li><br />
<li>You will now need to login. Use your <u>GitHub Username</u>, but make sure to use the <u>Personal Access Token</u> you created earlier and <b><u>NOT</u></b> your GitHub password</li><br />
</ul><br><br />
<br />
<!-- Step 5 --><br />
<li>At this point you should have a new folder in your annex with the name of your GitHub repository</li><br />
<ul><br />
<li>Confirm that the remote repository is correctly added, use the command:<br> <br />
<b>git remote -v</b><br></li><br />
<li>If needed, you can link the local repository to the remote repository using:<br> <br />
<b>git remote add origin <i>repository-url</i></b><br></li><br />
</ul><br><br />
<br />
<!-- Step 6 --><br />
<li>To switch to or determine a branch in Git, you can use the git checkout command:<br />
<ul><br />
<li>Determine the name of the branch you want to switch to via:<br> <br />
<b>git branch</b><br> <br />
<i>&ensp; - It will show all branches available and indicate your current branch with a * </i><br></li><br />
<li>Create a new branch using: <br> <br />
<b>git branch <i>new-branch-name</i></b> </li><br />
<li>Switch to that branch and work in it via:<br><br />
<b>git checkout <i>new-branch-name</i></b> <br></li><br><br />
<li>The two steps above can be combined:<br> <br />
<b>git checkout -b <i>new-branch-name</i></b> <br><br />
&ensp; <i>- This will <u>create and switch</u> to the new branch in one step</i></li><br><br />
</ul><br />
<br />
<!-- Step 7 --><br />
<li>Add files/folders to your directory</li><br><br />
<br />
<!-- Step 8 --><br />
<li>When you're ready to save, make sure you are in the root directory of your repository or the directory where the new folder you want to save is located. Then use the git add command to add the new folder and its contents to <br />
the staging area. Run the following command:<br><br />
<b>git add <i>folder-name</i></b><br><br />
<i>&ensp;- Adds the specified file or folder</i><br><br />
&emsp; OR <br><br />
<b>git add .</b> <br><br />
<i>&ensp;- Adds all new files and folders in the current directory recursively, does not add higher directory information</i><br><br />
&emsp; OR <br><br />
<b>git add -A</b> <br><br />
<i>&ensp;- Adds all files: new, modified, and deleted files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br />
&emsp; OR <br><br />
<b>git add -u</b> <br><br />
<i>&ensp;- Adds modified and deleted files only. Excludes new files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br><br />
For a more detailed description of <i>git add</i> go to: https://github.com/git-guides/git-add</li><br><br />
<br />
<!-- Step 9 --><br />
<li>Once the new folder/file is added to the staging area, you can commit the changes using the git commit command:<br> <b>git commit -m "<i>Commit message</i>"</b> <br><br />
<i>&ensp; - Replace Commit message with a descriptive message summarizing the changes you made. Keep " " around your message</i></li><br><br />
<br />
<!-- Step 10 --><br />
<li>After committing the changes (on your local machine), you can push them to the remote repository on GitHub using the git push command:<br> <br />
<b>git push origin <i>branch-name</i></b><br><br />
<i>&ensp; - Replace branch-name with the name of the branch you want to push to (e.g., main)</i><br><br />
<i>&ensp; - You will need to login with your Username and Personal Access Token</i></li><br><br />
</ol><br />
<br />
== <u><i>The Extras</i></u> ==<br />
<ul><br />
<!-- 1 --><br />
<li><b>git status</b><br><br />
&ensp; - This command shows the branch you're on, what files are in the working or staging directory, and other important information<br><br />
&emsp; <u>Example</u>:<br><br />
<pre> mcintyre@gluey/nfs/direct/annex/mcintyre/GitRepo/Radphi_pi02gp/RUN0<br />
$ git status<br />
# On branch PI0<br />
# Untracked files:<br />
# (use &quot;git add &lt;file&gt;...&quot; to include in what will be committed)<br />
#<br />
# STEP6/<br />
# STEP7/<br />
nothing added to commit but untracked files present (use &quot;git add&quot; to track)<br />
</pre><br />
</li><br><br />
<br />
<!-- 2 --><br />
<li><b>git reset</b><br><br />
&ensp; - This command unstages all changes (e.g. all <i>git add</i> performed before a <i>git commit</i>)<br></li><br />
<b>git reset <i>file-name</i></b><br><br />
&ensp; - This command undoes <i>git add</i> for uncommited changes to file <i>file-name</i><br><br><br />
<br />
<!-- 3 --><br />
<li>Adding a repository from your local computer to GitHub<br><br />
&ensp; 1) On your local computer, initialize the folder you want to adds as a repository:<br><br />
&ensp; &ensp; - <b>cd</b> to the folder that contains the work you'd like to track/backup<br><br />
&ensp; &ensp; - type <b>git init</b> to initialize the folder for Git tracking<br><br />
&ensp; &ensp; - type <b>touch .gitignore</b> to create a blank file in that folder, which can later be modify to specify files or types of files you don't want to track (<i>optional step</i>)<br><br><br />
<br />
&ensp; 2) Go to https://github.com/ , login, and create a repository as described above. Name the repository the same as your working folder you did the git init command in<br><br><br />
<br />
&ensp; 3) On your local computer link your working folder to the GitHub repsoitory:<br><br />
&ensp; &ensp; - <b>git remote add origin <i>github-repository-url</i></b><br><br />
&ensp; &ensp; &ensp; &ensp; <i>github-repository-url</i> can be found online. In your repository folder click on the green [<> Code] button then under the Local tab you'll see Clone HTTPS. Click the copy button to paste the <br />
address into the line of code above<br><br />
<br />
&ensp; 4) On your local computer, merge the two repositories (local and online):<br><br />
&ensp; &ensp; - <b>git pull origin main</b><br><br />
&ensp; &ensp; &ensp; &ensp; This assumes the GitHub branch is named <i>main</i> in the repository you created online<br><br><br />
<br />
<br />
&ensp; 5) On your local computer, add files to track:<br><br />
&ensp; &ensp; - <b>git add .</b><br><br><br />
<br />
&ensp; 6) On your local computer, commit that add:<br><br />
&ensp; &ensp; - <b>git commit -m "Message here"</b><br><br />
&ensp; &ensp; &ensp; &ensp; Change <i>Message here</i> to a brief description of changes (ex: Initial commit). Keep ""<br><br><br />
<br />
&ensp; 7) On your local computer, make sure/change the branch name to the name listed in the online repository:<br><br />
&ensp; &ensp; - <b>git branch</b> tells you the name(s) of the branch(es) with the current one having a * next to it<br><br />
&ensp; &ensp; - If you need to modify your local computer's branch name use <b>git branch -M main</b> where <i>main</i> is the name to change it to<br><br><br />
&ensp; &ensp; &ensp; &ensp; Use <b>git branch</b> to verify change<br><br><br />
<br />
&ensp; 8) On your local computer, push your commit:<br><br />
&ensp; &ensp; - <b>git push -u origin main</b><br><br />
&ensp; &ensp; &ensp; &ensp; You'll need to enter your GitHub profile name and your Personal Access Token<br><br><br />
<br />
<br />
</li><br />
<br />
<br />
<br />
<br />
<!-- For spacing: &nbsp; OR <br> &ensp; OR <br> &emsp; OR <br> --><br />
<!-- Smaller indent to Larger indent --></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=GitHub&diff=36406GitHub2023-06-04T16:21:31Z<p>Mcintyre: /* The Extras */</p>
<hr />
<div><font size="3">GitHub is a web-based platform that provides hosting of coding repositories. It offers a centralized location for people to store, manage, and allow collaboration on their code. It is especially useful for version control and project tracking. The following information is geared towards linking gluey annex repositories with GitHub, but can easily be used to link your home computer to a GitHub repository. This wiki page is being updated as the author learns how to use GitHub, so if you know a better, more efficient way to accomplish a task then by all means please do it that way (... and add an addendum to this page if you have a login).</font><br />
<br />
== <u><i>The Setup</i></u> ==<br />
<ol><br />
<!-- Step 1 --><br />
<li>Sign up for a GitHub account by going to the [https://github.com/ GitHub website] and create a new account<br><i>- If you do not make your email address public you will have problems pushing your code later</i></li><br><br />
<br />
<!-- Step 2 --><br />
<li>Once you're logged in, click on the "+" sign at the top-right corner of the GitHub homepage and select "New repository" to create a new repository. Give your repository a name and provide a description.</li><br />
<ul><br />
<li>The repository name will be your folder name on gluey (see below)</li><br />
<li>Repository description is optional</li><br />
<li>Repository Setting:</li><br />
<ul><br />
<li>Private vs. Public</li><br />
<li>License (optional) - MIT License is well known and least restrictive</li><br />
<li>You can add a README file</li><br />
<li>You can also rename the main branch (this must be done before the repository is created, changing the name will change all subsequent repositories that are made in the future)</li><br />
<li>And more ...</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 3 --><br />
<li>Once the repository is setup online, add a Personal Access Token</li><br />
<ul><br />
<li>At the top-right of the GitHub website click on the pull-down and select "Settings"</li><br />
<li>On the left select "Developer settings" located at the bottom </li><br />
<li>Then on the left select "Personal access tokens"</li><br />
<li>Select "Fine-grained tokens" or "Tokens (classic)", I did the prior one</li><br />
<ul><br />
<li>For the Fine-grained token you will need to select which permissions you'd like to allow (not sure about the classic token)</li><br />
<li>Select a period for the token to be valid, upto 90 days maximum (I believe)</li><br />
<li>Once complete it will provide you with the token you can copy, this will be used in place of your password later</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 4 --><br />
<li>Clone your repository</li><br />
<ul><br />
<li>Log in to gluey using a VNC and navigate to the location in your annex where you'll be working</li><br />
<ul><br />
<li>You can do the same for your home computer, you'll just need to open a terminal or command prompt and navigate to the directory where you want to store your code</li><br />
</ul><br />
<li>Use the command:<br><br />
<b>git clone https&#58;&#47;&#47;github&#46;com&#47;<i>your-username</i>&#47;<i>your-repository</i>&#46;git</b><br> <br />
<i>&ensp; - Make sure to replace "your-username" with your GitHub username and "your-repository" with the name of your repository</i></li><br />
<li>You will now need to login. Use your <u>GitHub Username</u>, but make sure to use the <u>Personal Access Token</u> you created earlier and <b><u>NOT</u></b> your GitHub password</li><br />
</ul><br><br />
<br />
<!-- Step 5 --><br />
<li>At this point you should have a new folder in your annex with the name of your GitHub repository</li><br />
<ul><br />
<li>Confirm that the remote repository is correctly added, use the command:<br> <br />
<b>git remote -v</b><br></li><br />
<li>If needed, you can link the local repository to the remote repository using:<br> <br />
<b>git remote add origin <i>repository-url</i></b><br></li><br />
</ul><br><br />
<br />
<!-- Step 6 --><br />
<li>To switch to or determine a branch in Git, you can use the git checkout command:<br />
<ul><br />
<li>Determine the name of the branch you want to switch to via:<br> <br />
<b>git branch</b><br> <br />
<i>&ensp; - It will show all branches available and indicate your current branch with a * </i><br></li><br />
<li>Create a new branch using: <br> <br />
<b>git branch <i>new-branch-name</i></b> </li><br />
<li>Switch to that branch and work in it via:<br><br />
<b>git checkout <i>new-branch-name</i></b> <br></li><br><br />
<li>The two steps above can be combined:<br> <br />
<b>git checkout -b <i>new-branch-name</i></b> <br><br />
&ensp; <i>- This will <u>create and switch</u> to the new branch in one step</i></li><br><br />
</ul><br />
<br />
<!-- Step 7 --><br />
<li>Add files/folders to your directory</li><br><br />
<br />
<!-- Step 8 --><br />
<li>When you're ready to save, make sure you are in the root directory of your repository or the directory where the new folder you want to save is located. Then use the git add command to add the new folder and its contents to <br />
the staging area. Run the following command:<br><br />
<b>git add <i>folder-name</i></b><br><br />
<i>&ensp;- Adds the specified file or folder</i><br><br />
&emsp; OR <br><br />
<b>git add .</b> <br><br />
<i>&ensp;- Adds all new files and folders in the current directory recursively, does not add higher directory information</i><br><br />
&emsp; OR <br><br />
<b>git add -A</b> <br><br />
<i>&ensp;- Adds all files: new, modified, and deleted files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br />
&emsp; OR <br><br />
<b>git add -u</b> <br><br />
<i>&ensp;- Adds modified and deleted files only. Excludes new files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br><br />
For a more detailed description of <i>git add</i> go to: https://github.com/git-guides/git-add</li><br><br />
<br />
<!-- Step 9 --><br />
<li>Once the new folder/file is added to the staging area, you can commit the changes using the git commit command:<br> <b>git commit -m "<i>Commit message</i>"</b> <br><br />
<i>&ensp; - Replace Commit message with a descriptive message summarizing the changes you made. Keep " " around your message</i></li><br><br />
<br />
<!-- Step 10 --><br />
<li>After committing the changes (on your local machine), you can push them to the remote repository on GitHub using the git push command:<br> <br />
<b>git push origin <i>branch-name</i></b><br><br />
<i>&ensp; - Replace branch-name with the name of the branch you want to push to (e.g., main)</i><br><br />
<i>&ensp; - You will need to login with your Username and Personal Access Token</i></li><br><br />
</ol><br />
<br />
== <u><i>The Extras</i></u> ==<br />
<ul><br />
<!-- 1 --><br />
<li><b>git status</b><br><br />
&ensp; - This command shows the branch you're on, what files are in the working or staging directory, and other important information<br><br />
&emsp; <u>Example</u>:<br><br />
<pre> mcintyre@gluey/nfs/direct/annex/mcintyre/GitRepo/Radphi_pi02gp/RUN0<br />
$ git status<br />
# On branch PI0<br />
# Untracked files:<br />
# (use &quot;git add &lt;file&gt;...&quot; to include in what will be committed)<br />
#<br />
# STEP6/<br />
# STEP7/<br />
nothing added to commit but untracked files present (use &quot;git add&quot; to track)<br />
</pre><br />
</li><br><br />
<br />
<!-- 2 --><br />
<li><b>git reset</b><br><br />
&ensp; - This command unstages all changes (e.g. all <i>git add</i> performed before a <i>git commit</i>)<br></li><br />
<b>git reset <i>file-name</i></b><br><br />
&ensp; - This command undoes <i>git add</i> for uncommited changes to file <i>file-name</i><br><br><br />
<br />
<!-- 3 --><br />
<br />
<br />
<br />
<br />
<br />
<!-- For spacing: &nbsp; OR <br> &ensp; OR <br> &emsp; OR <br> --><br />
<!-- Smaller indent to Larger indent --></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=GitHub&diff=36405GitHub2023-05-31T19:48:58Z<p>Mcintyre: </p>
<hr />
<div><font size="3">GitHub is a web-based platform that provides hosting of coding repositories. It offers a centralized location for people to store, manage, and allow collaboration on their code. It is especially useful for version control and project tracking. The following information is geared towards linking gluey annex repositories with GitHub, but can easily be used to link your home computer to a GitHub repository. This wiki page is being updated as the author learns how to use GitHub, so if you know a better, more efficient way to accomplish a task then by all means please do it that way (... and add an addendum to this page if you have a login).</font><br />
<br />
== <u><i>The Setup</i></u> ==<br />
<ol><br />
<!-- Step 1 --><br />
<li>Sign up for a GitHub account by going to the [https://github.com/ GitHub website] and create a new account<br><i>- If you do not make your email address public you will have problems pushing your code later</i></li><br><br />
<br />
<!-- Step 2 --><br />
<li>Once you're logged in, click on the "+" sign at the top-right corner of the GitHub homepage and select "New repository" to create a new repository. Give your repository a name and provide a description.</li><br />
<ul><br />
<li>The repository name will be your folder name on gluey (see below)</li><br />
<li>Repository description is optional</li><br />
<li>Repository Setting:</li><br />
<ul><br />
<li>Private vs. Public</li><br />
<li>License (optional) - MIT License is well known and least restrictive</li><br />
<li>You can add a README file</li><br />
<li>You can also rename the main branch (this must be done before the repository is created, changing the name will change all subsequent repositories that are made in the future)</li><br />
<li>And more ...</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 3 --><br />
<li>Once the repository is setup online, add a Personal Access Token</li><br />
<ul><br />
<li>At the top-right of the GitHub website click on the pull-down and select "Settings"</li><br />
<li>On the left select "Developer settings" located at the bottom </li><br />
<li>Then on the left select "Personal access tokens"</li><br />
<li>Select "Fine-grained tokens" or "Tokens (classic)", I did the prior one</li><br />
<ul><br />
<li>For the Fine-grained token you will need to select which permissions you'd like to allow (not sure about the classic token)</li><br />
<li>Select a period for the token to be valid, upto 90 days maximum (I believe)</li><br />
<li>Once complete it will provide you with the token you can copy, this will be used in place of your password later</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 4 --><br />
<li>Clone your repository</li><br />
<ul><br />
<li>Log in to gluey using a VNC and navigate to the location in your annex where you'll be working</li><br />
<ul><br />
<li>You can do the same for your home computer, you'll just need to open a terminal or command prompt and navigate to the directory where you want to store your code</li><br />
</ul><br />
<li>Use the command:<br><br />
<b>git clone https&#58;&#47;&#47;github&#46;com&#47;<i>your-username</i>&#47;<i>your-repository</i>&#46;git</b><br> <br />
<i>&ensp; - Make sure to replace "your-username" with your GitHub username and "your-repository" with the name of your repository</i></li><br />
<li>You will now need to login. Use your <u>GitHub Username</u>, but make sure to use the <u>Personal Access Token</u> you created earlier and <b><u>NOT</u></b> your GitHub password</li><br />
</ul><br><br />
<br />
<!-- Step 5 --><br />
<li>At this point you should have a new folder in your annex with the name of your GitHub repository</li><br />
<ul><br />
<li>Confirm that the remote repository is correctly added, use the command:<br> <br />
<b>git remote -v</b><br></li><br />
<li>If needed, you can link the local repository to the remote repository using:<br> <br />
<b>git remote add origin <i>repository-url</i></b><br></li><br />
</ul><br><br />
<br />
<!-- Step 6 --><br />
<li>To switch to or determine a branch in Git, you can use the git checkout command:<br />
<ul><br />
<li>Determine the name of the branch you want to switch to via:<br> <br />
<b>git branch</b><br> <br />
<i>&ensp; - It will show all branches available and indicate your current branch with a * </i><br></li><br />
<li>Create a new branch using: <br> <br />
<b>git branch <i>new-branch-name</i></b> </li><br />
<li>Switch to that branch and work in it via:<br><br />
<b>git checkout <i>new-branch-name</i></b> <br></li><br><br />
<li>The two steps above can be combined:<br> <br />
<b>git checkout -b <i>new-branch-name</i></b> <br><br />
&ensp; <i>- This will <u>create and switch</u> to the new branch in one step</i></li><br><br />
</ul><br />
<br />
<!-- Step 7 --><br />
<li>Add files/folders to your directory</li><br><br />
<br />
<!-- Step 8 --><br />
<li>When you're ready to save, make sure you are in the root directory of your repository or the directory where the new folder you want to save is located. Then use the git add command to add the new folder and its contents to <br />
the staging area. Run the following command:<br><br />
<b>git add <i>folder-name</i></b><br><br />
<i>&ensp;- Adds the specified file or folder</i><br><br />
&emsp; OR <br><br />
<b>git add .</b> <br><br />
<i>&ensp;- Adds all new files and folders in the current directory recursively, does not add higher directory information</i><br><br />
&emsp; OR <br><br />
<b>git add -A</b> <br><br />
<i>&ensp;- Adds all files: new, modified, and deleted files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br />
&emsp; OR <br><br />
<b>git add -u</b> <br><br />
<i>&ensp;- Adds modified and deleted files only. Excludes new files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br><br />
For a more detailed description of <i>git add</i> go to: https://github.com/git-guides/git-add</li><br><br />
<br />
<!-- Step 9 --><br />
<li>Once the new folder/file is added to the staging area, you can commit the changes using the git commit command:<br> <b>git commit -m "<i>Commit message</i>"</b> <br><br />
<i>&ensp; - Replace Commit message with a descriptive message summarizing the changes you made. Keep " " around your message</i></li><br><br />
<br />
<!-- Step 10 --><br />
<li>After committing the changes (on your local machine), you can push them to the remote repository on GitHub using the git push command:<br> <br />
<b>git push origin <i>branch-name</i></b><br><br />
<i>&ensp; - Replace branch-name with the name of the branch you want to push to (e.g., main)</i><br><br />
<i>&ensp; - You will need to login with your Username and Personal Access Token</i></li><br><br />
</ol><br />
<br />
== <u><i>The Extras</i></u> ==<br />
<ul><br />
<!-- 1 --><br />
<li><b>git status</b><br><br />
&ensp; - This command shows the branch you're on, what files are in the working or staging directory, and other important information<br><br />
&emsp; <u>Example</u>:<br><br />
<pre> mcintyre@gluey/nfs/direct/annex/mcintyre/GitRepo/Radphi_pi02gp/RUN0<br />
$ git status<br />
# On branch PI0<br />
# Untracked files:<br />
# (use &quot;git add &lt;file&gt;...&quot; to include in what will be committed)<br />
#<br />
# STEP6/<br />
# STEP7/<br />
nothing added to commit but untracked files present (use &quot;git add&quot; to track)<br />
</pre><br />
</li><br><br />
<br />
<!-- 2 --><br />
<li><b>git reset</b><br><br />
&ensp; - This command unstages all changes (e.g. all <i>git add</i> performed before a <i>git commit</i>)<br></li><br />
<li><b>git reset <i>file-name</i></b><br><br />
&ensp; - This command undoes <i>git add</i> for uncommited changes to file <i>file-name</i><br></li><br><br />
<br />
<!-- 3 --><br />
<br />
<br />
<br />
<br />
<br />
<!-- For spacing: &nbsp; OR <br> &ensp; OR <br> &emsp; OR <br> --><br />
<!-- Smaller indent to Larger indent --></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=GitHub&diff=36404GitHub2023-05-31T19:47:08Z<p>Mcintyre: </p>
<hr />
<div><font size="3">GitHub is a web-based platform that provides hosting of coding repositories. It offers a centralized location for people to store, manage, and allow collaboration on their code. It is especially useful for version control and project tracking. The following information is geared towards linking gluey annex repositories with GitHub, but can easily be used to link your home computer to a GitHub repository. This wiki page is being updated as the author learns how to use GitHub, so if you know a better, more efficient way to accomplish a task then by all means please do it that way (... and add an addendum to this page if you have a login).</font><br />
<br />
== <u>The Setup</u> ==<br />
<ol><br />
<!-- Step 1 --><br />
<li>Sign up for a GitHub account by going to the [https://github.com/ GitHub website] and create a new account<br><i>- If you do not make your email address public you will have problems pushing your code later</i></li><br><br />
<br />
<!-- Step 2 --><br />
<li>Once you're logged in, click on the "+" sign at the top-right corner of the GitHub homepage and select "New repository" to create a new repository. Give your repository a name and provide a description.</li><br />
<ul><br />
<li>The repository name will be your folder name on gluey (see below)</li><br />
<li>Repository description is optional</li><br />
<li>Repository Setting:</li><br />
<ul><br />
<li>Private vs. Public</li><br />
<li>License (optional) - MIT License is well known and least restrictive</li><br />
<li>You can add a README file</li><br />
<li>You can also rename the main branch (this must be done before the repository is created, changing the name will change all subsequent repositories that are made in the future)</li><br />
<li>And more ...</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 3 --><br />
<li>Once the repository is setup online, add a Personal Access Token</li><br />
<ul><br />
<li>At the top-right of the GitHub website click on the pull-down and select "Settings"</li><br />
<li>On the left select "Developer settings" located at the bottom </li><br />
<li>Then on the left select "Personal access tokens"</li><br />
<li>Select "Fine-grained tokens" or "Tokens (classic)", I did the prior one</li><br />
<ul><br />
<li>For the Fine-grained token you will need to select which permissions you'd like to allow (not sure about the classic token)</li><br />
<li>Select a period for the token to be valid, upto 90 days maximum (I believe)</li><br />
<li>Once complete it will provide you with the token you can copy, this will be used in place of your password later</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 4 --><br />
<li>Clone your repository</li><br />
<ul><br />
<li>Log in to gluey using a VNC and navigate to the location in your annex where you'll be working</li><br />
<ul><br />
<li>You can do the same for your home computer, you'll just need to open a terminal or command prompt and navigate to the directory where you want to store your code</li><br />
</ul><br />
<li>Use the command:<br><br />
<b>git clone https&#58;&#47;&#47;github&#46;com&#47;<i>your-username</i>&#47;<i>your-repository</i>&#46;git</b><br> <br />
<i>&ensp; - Make sure to replace "your-username" with your GitHub username and "your-repository" with the name of your repository</i></li><br />
<li>You will now need to login. Use your <u>GitHub Username</u>, but make sure to use the <u>Personal Access Token</u> you created earlier and <b><u>NOT</u></b> your GitHub password</li><br />
</ul><br><br />
<br />
<!-- Step 5 --><br />
<li>At this point you should have a new folder in your annex with the name of your GitHub repository</li><br />
<ul><br />
<li>Confirm that the remote repository is correctly added, use the command:<br> <br />
<b>git remote -v</b><br></li><br />
<li>If needed, you can link the local repository to the remote repository using:<br> <br />
<b>git remote add origin <i>repository-url</i></b><br></li><br />
</ul><br><br />
<br />
<!-- Step 6 --><br />
<li>To switch to or determine a branch in Git, you can use the git checkout command:<br />
<ul><br />
<li>Determine the name of the branch you want to switch to via:<br> <br />
<b>git branch</b><br> <br />
<i>&ensp; - It will show all branches available and indicate your current branch with a * </i><br></li><br />
<li>Create a new branch using: <br> <br />
<b>git branch <i>new-branch-name</i></b> </li><br />
<li>Switch to that branch and work in it via:<br><br />
<b>git checkout <i>new-branch-name</i></b> <br></li><br><br />
<li>The two steps above can be combined:<br> <br />
<b>git checkout -b <i>new-branch-name</i></b> <br><br />
&ensp; <i>- This will <u>create and switch</u> to the new branch in one step</i></li><br><br />
</ul><br />
<br />
<!-- Step 7 --><br />
<li>Add files/folders to your directory</li><br><br />
<br />
<!-- Step 8 --><br />
<li>When you're ready to save, make sure you are in the root directory of your repository or the directory where the new folder you want to save is located. Then use the git add command to add the new folder and its contents to <br />
the staging area. Run the following command:<br><br />
<b>git add <i>folder-name</i></b><br><br />
<i>&ensp;- Adds the specified file or folder</i><br><br />
&emsp; OR <br><br />
<b>git add .</b> <br><br />
<i>&ensp;- Adds all new files and folders in the current directory recursively, does not add higher directory information</i><br><br />
&emsp; OR <br><br />
<b>git add -A</b> <br><br />
<i>&ensp;- Adds all files: new, modified, and deleted files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br />
&emsp; OR <br><br />
<b>git add -u</b> <br><br />
<i>&ensp;- Adds modified and deleted files only. Excludes new files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br><br />
For a more detailed description of <i>git add</i> go to: https://github.com/git-guides/git-add</li><br><br />
<br />
<!-- Step 9 --><br />
<li>Once the new folder/file is added to the staging area, you can commit the changes using the git commit command:<br> <b>git commit -m "<i>Commit message</i>"</b> <br><br />
<i>&ensp; - Replace Commit message with a descriptive message summarizing the changes you made. Keep " " around your message</i></li><br><br />
<br />
<!-- Step 10 --><br />
<li>After committing the changes (on your local machine), you can push them to the remote repository on GitHub using the git push command:<br> <br />
<b>git push origin <i>branch-name</i></b><br><br />
<i>&ensp; - Replace branch-name with the name of the branch you want to push to (e.g., main)</i><br><br />
<i>&ensp; - You will need to login with your Username and Personal Access Token</i></li><br><br />
</ol><br />
<br />
== <u>The Extras</u> ==<br />
<ul><br />
<!-- 1 --><br />
<li><b>git status</b><br><br />
&ensp; - This command shows the branch you're on, what files are in the working or staging directory, and other important information<br><br />
&emsp; <u>Example</u>:<br><br />
<pre> mcintyre@gluey/nfs/direct/annex/mcintyre/GitRepo/Radphi_pi02gp/RUN0<br />
$ git status<br />
# On branch PI0<br />
# Untracked files:<br />
# (use &quot;git add &lt;file&gt;...&quot; to include in what will be committed)<br />
#<br />
# STEP6/<br />
# STEP7/<br />
nothing added to commit but untracked files present (use &quot;git add&quot; to track)<br />
</pre><br />
</li><br><br />
<br />
<!-- 2 --><br />
<li><b>git reset</b><br><br />
&ensp; - This command unstages all changes (e.g. all <i>git add</i> performed before a <i>git commit</i>)<br></li><br />
<li><b>git reset <i>file-name</i></b><br><br />
&ensp; - This command undoes <i>git add</i> for uncommited changes to file <i>file-name</i><br></li><br><br />
<br />
<!-- 3 --><br />
<br />
<br />
<br />
<br />
<br />
<!-- For spacing: &nbsp; OR <br> &ensp; OR <br> &emsp; OR <br> --><br />
<!-- Smaller indent to Larger indent --></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=GitHub&diff=36403GitHub2023-05-31T15:52:57Z<p>Mcintyre: /* The Setup */</p>
<hr />
<div><font size="3">GitHub is a web-based platform that provides hosting of coding repositories. It offers a centralized location for people to store, manage, and allow collaboration on their code. It is especially useful for version control and project tracking. The following information is geared towards linking gluey annex repositories with GitHub, but can easily be used to link your home computer to a GitHub repository. This wiki page is being updated as the author learns how to use GitHub, so if you know a better, more efficient way to accomplish a task then by all means please do it that way (... and add an addendum to this page if you have a login).</font><br />
<br />
== <u>The Setup</u> ==<br />
<ol><br />
<!-- Step 1 --><br />
<li>Sign up for a GitHub account by going to the [https://github.com/ GitHub website] and create a new account<br><i>- If you do not make your email address public you will have problems pushing your code later</i></li><br><br />
<br />
<!-- Step 2 --><br />
<li>Once you're logged in, click on the "+" sign at the top-right corner of the GitHub homepage and select "New repository" to create a new repository. Give your repository a name and provide a description.</li><br />
<ul><br />
<li>The repository name will be your folder name on gluey (see below)</li><br />
<li>Repository description is optional</li><br />
<li>Repository Setting:</li><br />
<ul><br />
<li>Private vs. Public</li><br />
<li>License (optional) - MIT License is well known and least restrictive</li><br />
<li>You can add a README file</li><br />
<li>You can also rename the main branch (this must be done before the repository is created, changing the name will change all subsequent repositories that are made in the future)</li><br />
<li>And more ...</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 3 --><br />
<li>Once the repository is setup online, add a Personal Access Token</li><br />
<ul><br />
<li>At the top-right of the GitHub website click on the pull-down and select "Settings"</li><br />
<li>On the left select "Developer settings" located at the bottom </li><br />
<li>Then on the left select "Personal access tokens"</li><br />
<li>Select "Fine-grained tokens" or "Tokens (classic)", I did the prior one</li><br />
<ul><br />
<li>For the Fine-grained token you will need to select which permissions you'd like to allow (not sure about the classic token)</li><br />
<li>Select a period for the token to be valid, upto 90 days maximum (I believe)</li><br />
<li>Once complete it will provide you with the token you can copy, this will be used in place of your password later</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 4 --><br />
<li>Clone your repository</li><br />
<ul><br />
<li>Log in to gluey using a VNC and navigate to the location in your annex where you'll be working</li><br />
<ul><br />
<li>You can do the same for your home computer, you'll just need to open a terminal or command prompt and navigate to the directory where you want to store your code</li><br />
</ul><br />
<li>Use the command:<br><br />
<b>git clone https&#58;&#47;&#47;github&#46;com&#47;<i>your-username</i>&#47;<i>your-repository</i>&#46;git</b><br> <br />
<i>&ensp; - Make sure to replace "your-username" with your GitHub username and "your-repository" with the name of your repository</i></li><br />
<li>You will now need to login. Use your <u>GitHub Username</u>, but make sure to use the <u>Personal Access Token</u> you created earlier and <b><u>NOT</u></b> your GitHub password</li><br />
</ul><br><br />
<br />
<!-- Step 5 --><br />
<li>At this point you should have a new folder in your annex with the name of your GitHub repository</li><br />
<ul><br />
<li>Confirm that the remote repository is correctly added, use the command:<br> <br />
<b>git remote -v</b><br></li><br />
<li>If needed, you can link the local repository to the remote repository using:<br> <br />
<b>git remote add origin <i>repository-url</i></b><br></li><br />
</ul><br><br />
<br />
<!-- Step 6 --><br />
<li>To switch to or determine a branch in Git, you can use the git checkout command:<br />
<ul><br />
<li>Determine the name of the branch you want to switch to via:<br> <br />
<b>git branch</b><br> <br />
<i>&ensp; - It will show all branches available and indicate your current branch with a * </i><br></li><br />
<li>Create a new branch using: <br> <br />
<b>git branch <i>new-branch-name</i></b> </li><br />
<li>Switch to that branch and work in it via:<br><br />
<b>git checkout <i>new-branch-name</i></b> <br></li><br><br />
<li>The two steps above can be combined:<br> <br />
<b>git checkout -b <i>new-branch-name</i></b> <br><br />
&ensp; <i>- This will <u>create and switch</u> to the new branch in one step</i></li><br><br />
</ul><br />
<br />
<!-- Step 7 --><br />
<li>Add files/folders to your directory</li><br><br />
<br />
<!-- Step 8 --><br />
<li>When you're ready to save, make sure you are in the root directory of your repository or the directory where the new folder you want to save is located. Then use the git add command to add the new folder and its contents to <br />
the staging area. Run the following command:<br><br />
<b>git add <i>folder-name</i></b><br><br />
<i>&ensp;- Adds the specified file or folder</i><br><br />
&emsp; OR <br><br />
<b>git add .</b> <br><br />
<i>&ensp;- Adds all new files and folders in the current directory recursively, does not add higher directory information</i><br><br />
&emsp; OR <br><br />
<b>git add -A</b> <br><br />
<i>&ensp;- Adds all files: new, modified, and deleted files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br />
&emsp; OR <br><br />
<b>git add -u</b> <br><br />
<i>&ensp;- Adds modified and deleted files only. Excludes new files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br><br />
For a more detailed description of <i>git add</i> go to: https://github.com/git-guides/git-add</li><br><br />
<br />
<!-- Step 9 --><br />
<li>Once the new folder/file is added to the staging area, you can commit the changes using the git commit command:<br> <b>git commit -m "<i>Commit message</i>"</b> <br><br />
<i>&ensp; - Replace Commit message with a descriptive message summarizing the changes you made. Keep " " around your message</i></li><br><br />
<br />
<!-- Step 10 --><br />
<li>After committing the changes (on your local machine), you can push them to the remote repository on GitHub using the git push command:<br> <br />
<b>git push origin <i>branch-name</i></b><br><br />
<i>&ensp; - Replace branch-name with the name of the branch you want to push to (e.g., main)<br><br />
<i>&ensp; - You will need to login with your Username and Personal Access Token</li><br><br />
</ol><br />
<br />
== <u>The Extras</u> ==<br />
<ul><br />
<!-- 1 --><br />
<li><b>git status</b><br><br />
&ensp; - This command shows the branch you're on, what files are in the working or staging directory, and other important information<br><br />
&emsp; <u>Example</u>:<br><br />
<pre> mcintyre@gluey/nfs/direct/annex/mcintyre/GitRepo/Radphi_pi02gp/RUN0<br />
$ git status<br />
# On branch PI0<br />
# Untracked files:<br />
# (use &quot;git add &lt;file&gt;...&quot; to include in what will be committed)<br />
#<br />
# STEP6/<br />
# STEP7/<br />
nothing added to commit but untracked files present (use &quot;git add&quot; to track)<br />
</pre><br />
</li><br><br />
<br />
<!-- 2 --><br />
<li><b>git reset</b><br><br />
&ensp; - This command unstages all changes (e.g. all <i>git add</i> performed before a <i>git commit</i>)<br></li><br />
<li><b>git reset <i>file-name</i></b><br><br />
&ensp; - This command undoes <i>git add</i> for uncommited changes to file <i>file-name</i><br></li><br><br />
<br />
<!-- 3 --><br />
<br />
<br />
<br />
<br />
<br />
<!-- For spacing: &nbsp; OR <br> &ensp; OR <br> &emsp; OR <br> --><br />
<!-- Smaller indent to Larger indent --></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=GitHub&diff=36402GitHub2023-05-31T15:50:27Z<p>Mcintyre: </p>
<hr />
<div><font size="3">GitHub is a web-based platform that provides hosting of coding repositories. It offers a centralized location for people to store, manage, and allow collaboration on their code. It is especially useful for version control and project tracking. The following information is geared towards linking gluey annex repositories with GitHub, but can easily be used to link your home computer to a GitHub repository. This wiki page is being updated as the author learns how to use GitHub, so if you know a better, more efficient way to accomplish a task then by all means please do it that way (... and add an addendum to this page if you have a login).</font><br />
<br />
== <u>The Setup</u> ==<br />
<ol><br />
<!-- Step 1 --><br />
<li>Sign up for a GitHub account by going to the [https://github.com/ GitHub website] and create a new account<br><i>- If you do not make your email address public you will have problems pushing your code later</i></li><br><br />
<br />
<!-- Step 2 --><br />
<li>Once you're logged in, click on the "+" sign at the top-right corner of the GitHub homepage and select "New repository" to create a new repository. Give your repository a name and provide a description.</li><br />
<ul><br />
<li>The repository name will be your folder name on gluey (see below)</li><br />
<li>Repository description is optional</li><br />
<li>Repository Setting:</li><br />
<ul><br />
<li>Private vs. Public</li><br />
<li>License (optional) - MIT License is well known and least restrictive</li><br />
<li>You can add a README file</li><br />
<li>You can also rename the main branch (this must be done before the repository is created, changing the name will change all subsequent repositories that are made in the future)</li><br />
<li>And more ...</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 3 --><br />
<li>Once the repository is setup online, add a Personal Access Token</li><br />
<ul><br />
<li>At the top-right of the GitHub website click on the pull-down and select "Settings"</li><br />
<li>On the left select "Developer settings" located at the bottom </li><br />
<li>Then on the left select "Personal access tokens"</li><br />
<li>Select "Fine-grained tokens" or "Tokens (classic)", I did the prior one</li><br />
<ul><br />
<li>For the Fine-grained token you will need to select which permissions you'd like to allow (not sure about the classic token)</li><br />
<li>Select a period for the token to be valid, upto 90 days maximum (I believe)</li><br />
<li>Once complete it will provide you with the token you can copy, this will be used in place of your password later</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 4 --><br />
<li>Clone your repository</li><br />
<ul><br />
<li>Log in to gluey using a VNC and navigate to the location in your annex where you'll be working</li><br />
<ul><br />
<li>You can do the same for your home computer, you'll just need to open a terminal or command prompt and navigate to the directory where you want to store your code</li><br />
</ul><br />
<li>Use the command:<br><br />
<b>git clone https&#58;&#47;&#47;github&#46;com&#47;<i>your-username</i>&#47;<i>your-repository</i>&#46;git</b><br> <br />
<i>&ensp; - Make sure to replace "your-username" with your GitHub username and "your-repository" with the name of your repository</i></li><br />
<li>You will now need to login. Use your <u>GitHub Username</u>, but make sure to use the <u>Personal Access Token</u> you created earlier and <b><u>NOT</u></b> your GitHub password</li><br />
</ul><br><br />
<br />
<!-- Step 5 --><br />
<li>At this point you should have a new folder in your annex with the name of your GitHub repository</li><br />
<ul><br />
<li>Confirm that the remote repository is correctly added, use the command:<br> <br />
<b>git remote -v</b><br></li><br />
<li>If needed, you can link the local repository to the remote repository using:<br> <br />
<b>git remote add origin <i>&lt;repository-url&gt;</i></b><br></li><br />
</ul><br><br />
<br />
<!-- Step 6 --><br />
<li>To switch to or determine a branch in Git, you can use the git checkout command:<br />
<ul><br />
<li>Determine the name of the branch you want to switch to via:<br> <br />
<b>git branch</b><br> <br />
<i>&ensp; - It will show all branches available and indicate your current branch with a * </i><br></li><br />
<li>Create a new branch using: <br> <br />
<b>git branch <i>new-branch-name</i></b> </li><br />
<li>Switch to that branch and work in it via:<br><br />
<b>git checkout <i>new-branch-name</i></b> <br></li><br><br />
<li>The two steps above can be combined:<br> <br />
<b>git checkout -b <i>new-branch-name</i></b> <br><br />
&ensp; <i>- This will <u>create and switch</u> to the new branch in one step</i></li><br><br />
</ul><br />
<br />
<!-- Step 7 --><br />
<li>Add files/folders to your directory</li><br><br />
<br />
<!-- Step 8 --><br />
<li>When you're ready to save, make sure you are in the root directory of your repository or the directory where the new folder you want to save is located. Then use the git add command to add the new folder and its contents to <br />
the staging area. Run the following command:<br><br />
<b>git add <i>folder-name</i></b><br><br />
<i>&ensp;- Adds the specified file or folder</i><br><br />
&emsp; OR <br><br />
<b>git add .</b> <br><br />
<i>&ensp;- Adds all new files and folders in the current directory recursively, does not add higher directory information</i><br><br />
&emsp; OR <br><br />
<b>git add -A</b> <br><br />
<i>&ensp;- Adds all files: new, modified, and deleted files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br />
&emsp; OR <br><br />
<b>git add -u</b> <br><br />
<i>&ensp;- Adds modified and deleted files only. Excludes new files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br><br />
For a more detailed description of <i>git add</i> go to: https://github.com/git-guides/git-add</li><br><br />
<br />
<!-- Step 9 --><br />
<li>Once the new folder/file is added to the staging area, you can commit the changes using the git commit command:<br> <b>git commit -m "<i>Commit message</i>"</b> <br><br />
<i>&ensp; - Replace Commit message with a descriptive message summarizing the changes you made. Keep " " around your message</i></li><br><br />
<br />
<!-- Step 10 --><br />
<li>After committing the changes (on your local machine), you can push them to the remote repository on GitHub using the git push command:<br> <br />
<b>git push origin <i>branch-name</i></b><br><br />
<i>&ensp; - Replace branch-name with the name of the branch you want to push to (e.g., main)<br><br />
<i>&ensp; - You will need to login with your Username and Personal Access Token</li><br><br />
</ol><br />
<br />
== <u>The Extras</u> ==<br />
<ul><br />
<!-- 1 --><br />
<li><b>git status</b><br><br />
&ensp; - This command shows the branch you're on, what files are in the working or staging directory, and other important information<br><br />
&emsp; <u>Example</u>:<br><br />
<pre> mcintyre@gluey/nfs/direct/annex/mcintyre/GitRepo/Radphi_pi02gp/RUN0<br />
$ git status<br />
# On branch PI0<br />
# Untracked files:<br />
# (use &quot;git add &lt;file&gt;...&quot; to include in what will be committed)<br />
#<br />
# STEP6/<br />
# STEP7/<br />
nothing added to commit but untracked files present (use &quot;git add&quot; to track)<br />
</pre><br />
</li><br><br />
<br />
<!-- 2 --><br />
<li><b>git reset</b><br><br />
&ensp; - This command unstages all changes (e.g. all <i>git add</i> performed before a <i>git commit</i>)<br></li><br />
<li><b>git reset <i>file-name</i></b><br><br />
&ensp; - This command undoes <i>git add</i> for uncommited changes to file <i>file-name</i><br></li><br><br />
<br />
<!-- 3 --><br />
<br />
<br />
<br />
<br />
<br />
<!-- For spacing: &nbsp; OR <br> &ensp; OR <br> &emsp; OR <br> --><br />
<!-- Smaller indent to Larger indent --></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=GitHub&diff=36401GitHub2023-05-31T15:23:13Z<p>Mcintyre: </p>
<hr />
<div><font size="3">GitHub is a web-based platform that provides hosting of coding repositories. It offers a centralized location for people to store, manage, and allow collaboration on their code. It is especially useful for version control and project tracking. The following information is geared towards linking gluey annex repositories with GitHub, but can easily be used to link your home computer to a GitHub repository. This wiki page is being updated as the author learns how to use GitHub, so if you know a better, more efficient way to accomplish a task then by all means please do it that way (... and add an addendum to this page if you have a login).</font><br />
<br />
== <u>The Setup</u> ==<br />
<ol><br />
<!-- Step 1 --><br />
<li>Sign up for a GitHub account by going to the [https://github.com/ GitHub website] and create a new account<br><i>- If you do not make your email address public you will have problems pushing your code later</i></li><br><br />
<br />
<!-- Step 2 --><br />
<li>Once you're logged in, click on the "+" sign at the top-right corner of the GitHub homepage and select "New repository" to create a new repository. Give your repository a name and provide a description.</li><br />
<ul><br />
<li>The repository name will be your folder name on gluey (see below)</li><br />
<li>Repository description is optional</li><br />
<li>Repository Setting:</li><br />
<ul><br />
<li>Private vs. Public</li><br />
<li>License (optional) - MIT License is well known and least restrictive</li><br />
<li>You can add a README file</li><br />
<li>You can also rename the main branch (this must be done before the repository is created, changing the name will change all subsequent repositories that are made in the future)</li><br />
<li>And more ...</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 3 --><br />
<li>Once the repository is setup online, add a Personal Access Token</li><br />
<ul><br />
<li>At the top-right of the GitHub website click on the pull-down and select "Settings"</li><br />
<li>On the left select "Developer settings" located at the bottom </li><br />
<li>Then on the left select "Personal access tokens"</li><br />
<li>Select "Fine-grained tokens" or "Tokens (classic)", I did the prior one</li><br />
<ul><br />
<li>For the Fine-grained token you will need to select which permissions you'd like to allow (not sure about the classic token)</li><br />
<li>Select a period for the token to be valid, upto 90 days maximum (I believe)</li><br />
<li>Once complete it will provide you with the token you can copy, this will be used in place of your password later</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 4 --><br />
<li>Clone your repository</li><br />
<ul><br />
<li>Log in to gluey using a VNC and navigate to the location in your annex where you'll be working</li><br />
<ul><br />
<li>You can do the same for your home computer, you'll just need to open a terminal or command prompt and navigate to the directory where you want to store your code</li><br />
</ul><br />
<li><u>Type the command:</u><br> <b>git clone https&#58;&#47;&#47;github&#46;com&#47;your-username&#47;your-repository&#46;git</b><br> <i>&ensp; - Make sure to replace "your-username" with your GitHub username and "your- <br />
repository" <br />
with the name of your repository</i></li><br />
<li>You will now need to login. Use your <b>GitHub Username</b>, but make sure to use the <b>Personal Access Token</b> you created earlier and <b><u>NOT</u></b> your GitHub password</li><br />
</ul><br><br />
<br />
<!-- Step 5 --><br />
<li>At this point you should have a new folder in your annex with the name of your GitHub repository</li><br />
<ul><br />
<li>Confirm that the remote repository is correctly added, use the command:<br> <b>git remote -v</b><br></li><br />
<li>If needed, you can link the local repository to the remote repository using:<br> <b>git remote add origin &lt;repository-url&gt;</b><br></li><br />
</ul><br><br />
<br />
<!-- Step 6 --><br />
<li>To switch to or determine a branch in Git, you can use the git checkout command:<br />
<ul><br />
<li>Determine the name of the branch you want to switch to via:<br> <b>git branch</b><br> <br />
<i>&ensp; - It will show all branches available and indicate your current branch with a * </i><br></li><br />
<li>Create a new branch using: <br> <br />
<b>git branch new-branch-name</b> </li><br />
<li>Switch to that branch and work in it via:<br><br />
<b>git checkout new-branch-name</b> <br></li><br><br />
<li>The two steps above can be combined:<br> <br />
<b>git checkout -b new-branch-name</b> <br><br />
&ensp; <i>- This will <b>create and switch</b> to the new branch in one step</i></li><br><br />
</ul><br />
<br />
<!-- Step 7 --><br />
<li>Add files/folders to your directory</li><br><br />
<br />
<!-- Step 8 --><br />
<li>When you're ready to save, make sure you are in the root directory of your repository or the directory where the new folder you want to save is located. Then use the git add command to add the new folder and its contents to <br />
the staging area. Run the following command:<br><br />
<b>git add folder-name</b><br><br />
<i>&ensp;- Adds the specified file or folder</i><br><br />
&emsp; OR <br><br />
<b>git add .</b> <br><br />
<i>&ensp;- Adds all new files and folders in the current directory recursively, does not add higher directory information</i><br><br />
&emsp; OR <br><br />
<b>git add -A</b> <br><br />
<i>&ensp;- Adds all files: new, modified, and deleted files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br />
&emsp; OR <br><br />
<b>git add -u</b> <br><br />
<i>&ensp;- Adds modified and deleted files only. Excludes new files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br><br />
For a more detailed description of <i>git add</i> go to: https://github.com/git-guides/git-add</li><br><br />
<br />
<!-- Step 9 --><br />
<li>Once the new folder/file is added to the staging area, you can commit the changes using the git commit command:<br> <b>git commit -m "Commit message"</b> <br><br />
<i>&ensp; - Replace <b>Commit message</b> with a descriptive message summarizing the changes you made. Keep " " around your message</i></li><br><br />
<br />
<!-- Step 10 --><br />
<li>After committing the changes (on your local machine), you can push them to the remote repository on GitHub using the git push command:<br> <b>git push origin branch-name</b><br><br />
<i>&ensp; - Replace <b>branch-name</b> with the name of the branch you want to push to (e.g., main)<br><br />
<i>&ensp; - You will need to login with your Username and Personal Access Token</li><br><br />
</ol><br />
<br />
== <u>The Extras</u> ==<br />
<ul><br />
<!-- 1 --><br />
<li><b>git status</b><br><br />
&ensp; - The command shows the branch you're on, what files are in the working or staging directory, and other important information<br><br />
&emsp; <u>Example</u>:<br><br />
<pre> mcintyre@gluey/nfs/direct/annex/mcintyre/GitRepo/Radphi_pi02gp/RUN0<br />
$ git status<br />
# On branch PI0<br />
# Untracked files:<br />
# (use &quot;git add &lt;file&gt;...&quot; to include in what will be committed)<br />
#<br />
# STEP6/<br />
# STEP7/<br />
nothing added to commit but untracked files present (use &quot;git add&quot; to track)<br />
</pre><br />
</li><br><br />
<br />
<!-- 2 --><br />
<br />
<br />
<br />
<br />
<!-- For spacing: &nbsp; OR <br> &ensp; OR <br> &emsp; OR <br> --><br />
<!-- Smaller indent to Larger indent --></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=GitHub&diff=36400GitHub2023-05-31T15:16:20Z<p>Mcintyre: </p>
<hr />
<div><font size="3">GitHub is a web-based platform that provides hosting of coding repositories. It offers a centralized location for people to store, manage, and allow collaboration on their code. It is especially useful for version control and project tracking. The following information is geared towards linking gluey annex repositories with GitHub, but can easily be used to link your home computer to a GitHub repository. This wiki page is being updated as the author learns how to use GitHub, so if you know a better, more efficient way to accomplish a task then by all means please do it that way (... and add an addendum to this page if you have a login).</font><br />
<br />
== <u>The Setup</u> ==<br />
<ol><br />
<!-- Step 1 --><br />
<li>Sign up for a GitHub account by going to the [https://github.com/ GitHub website] and create a new account<br><i>- If you do not make your email address public you will have problems pushing your code later</i></li><br><br />
<br />
<!-- Step 2 --><br />
<li>Once you're logged in, click on the "+" sign at the top-right corner of the GitHub homepage and select "New repository" to create a new repository. Give your repository a name and provide a description.</li><br />
<ul><br />
<li>The repository name will be your folder name on gluey (see below)</li><br />
<li>Repository description is optional</li><br />
<li>Repository Setting:</li><br />
<ul><br />
<li>Private vs. Public</li><br />
<li>License (optional) - MIT License is well known and least restrictive</li><br />
<li>You can add a README file</li><br />
<li>You can also rename the main branch (this must be done before the repository is created, changing the name will change all subsequent repositories that are made in the future)</li><br />
<li>And more ...</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 3 --><br />
<li>Once the repository is setup online, add a Personal Access Token</li><br />
<ul><br />
<li>At the top-right of the GitHub website click on the pull-down and select "Settings"</li><br />
<li>On the left select "Developer settings" located at the bottom </li><br />
<li>Then on the left select "Personal access tokens"</li><br />
<li>Select "Fine-grained tokens" or "Tokens (classic)", I did the prior one</li><br />
<ul><br />
<li>For the Fine-grained token you will need to select which permissions you'd like to allow (not sure about the classic token)</li><br />
<li>Select a period for the token to be valid, upto 90 days maximum (I believe)</li><br />
<li>Once complete it will provide you with the token you can copy, this will be used in place of your password later</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 4 --><br />
<li>Clone your repository</li><br />
<ul><br />
<li>Log in to gluey using a VNC and navigate to the location in your annex where you'll be working</li><br />
<ul><br />
<li>You can do the same for your home computer, you'll just need to open a terminal or command prompt and navigate to the directory where you want to store your code</li><br />
</ul><br />
<li><u>Type the command:</u><br> <b>git clone https&#58;&#47;&#47;github&#46;com&#47;your-username&#47;your-repository&#46;git</b><br> <i>&ensp; - Make sure to replace "your-username" with your GitHub username and "your- <br />
repository" <br />
with the name of your repository</i></li><br />
<li>You will now need to login. Use your <b>GitHub Username</b>, but make sure to use the <b>Personal Access Token</b> you created earlier and <b><u>NOT</u></b> your GitHub password</li><br />
</ul><br><br />
<br />
<!-- Step 5 --><br />
<li>At this point you should have a new folder in your annex with the name of your GitHub repository</li><br />
<ul><br />
<li>Confirm that the remote repository is correctly added, use the command:<br> <b>git remote -v</b><br></li><br />
<li>If needed, you can link the local repository to the remote repository using:<br> <b>git remote add origin &lt;repository-url&gt;</b><br></li><br />
</ul><br><br />
<br />
<!-- Step 6 --><br />
<li>To switch to or determine a branch in Git, you can use the git checkout command:<br />
<ul><br />
<li>Determine the name of the branch you want to switch to via:<br> <b>git branch</b><br> <br />
<i>&ensp; - It will show all branches available and indicate your current branch with a * </i><br></li><br />
<li>Create a new branch using: <br> <br />
<b>git branch new-branch-name</b> </li><br />
<li>Switch to that branch and work in it via:<br><br />
<b>git checkout new-branch-name</b> <br></li><br><br />
<li>The two steps above can be combined:<br> <br />
<b>git checkout -b new-branch-name</b> <br><br />
&ensp; <i>- This will <b>create and switch</b> to the new branch in one step</i></li><br><br />
</ul><br />
<br />
<!-- Step 7 --><br />
<li>Add files/folders to your directory</li><br><br />
<br />
<!-- Step 8 --><br />
<li>When you're ready to save, make sure you are in the root directory of your repository or the directory where the new folder you want to save is located. Then use the git add command to add the new folder and its contents to <br />
the staging area. Run the following command:<br><br />
<b>git add folder-name</b><br><br />
<i>&ensp;- Adds the specified file or folder</i><br><br />
&emsp; OR <br><br />
<b>git add .</b> <br><br />
<i>&ensp;- Adds all new files and folders in the current directory recursively, does not add higher directory information</i><br><br />
&emsp; OR <br><br />
<b>git add -A</b> <br><br />
<i>&ensp;- Adds all files: new, modified, and deleted files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br />
&emsp; OR <br><br />
<b>git add -u</b> <br><br />
<i>&ensp;- Adds modified and deleted files only. Excludes new files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br><br />
For a more detailed description of <i>git add</i> go to: https://github.com/git-guides/git-add</li><br><br />
<br />
<!-- Step 9 --><br />
<li>Once the new folder/file is added to the staging area, you can commit the changes using the git commit command:<br> <b>git commit -m "Commit message"</b> <br><br />
<i>&ensp; - Replace <b>Commit message</b> with a descriptive message summarizing the changes you made. Keep " " around your message</i></li><br><br />
<br />
<!-- Step 10 --><br />
<li>After committing the changes (on your local machine), you can push them to the remote repository on GitHub using the git push command:<br> <b>git push origin branch-name</b><br><br />
<i>&ensp; - Replace <b>branch-name</b> with the name of the branch you want to push to (e.g., main)<br><br />
<i>&ensp; - You will need to login with your Username and Personal Access Token</li><br><br />
</ol><br />
<br />
== <u>The Extras</u> ==<br />
<ul><br />
<!-- 1 --><br />
<li><b>git status</b><br><br />
&ensp; - The command shows the branch you're on, what files are in the working or staging directory, and other important information<br><br />
&emsp; <u>Example</u>:<br><br />
<pre>mcintyre@gluey/nfs/direct/annex/mcintyre/GitRepo/Radphi_pi02gp/RUN0<br />
$ git status<br />
# On branch PI0<br />
# Untracked files:<br />
# (use &quot;git add &lt;file&gt;...&quot; to include in what will be committed)<br />
#<br />
# STEP6/<br />
# STEP7/<br />
nothing added to commit but untracked files present (use &quot;git add&quot; to track)<br />
</pre><br />
</li><br><br />
<br />
<br />
<br />
<br />
<!-- For spacing: &nbsp; OR <br> &ensp; OR <br> &emsp; OR <br> --><br />
<!-- Smaller indent to Larger indent --></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=GitHub&diff=36399GitHub2023-05-31T15:06:19Z<p>Mcintyre: /* The Setup */</p>
<hr />
<div><font size="3">GitHub is a web-based platform that provides hosting of coding repositories. It offers a centralized location for people to store, manage, and allow collaboration on their code. It is especially useful for version control and project tracking. The following information is geared towards linking gluey annex repositories with GitHub, but can easily be used to link your home computer to a GitHub repository. This wiki page is being updated as the author learns how to use GitHub, so if you know a better, more efficient way to accomplish a task then by all means please do it that way (... and add an addendum to this page if you have a login).</font><br />
<br />
== <u>The Setup</u> ==<br />
<ol><br />
<!-- Step 1 --><br />
<li>Sign up for a GitHub account by going to the [https://github.com/ GitHub website] and create a new account<br><i>- If you do not make your email address public you will have problems pushing your code later</i></li><br><br />
<br />
<!-- Step 2 --><br />
<li>Once you're logged in, click on the "+" sign at the top-right corner of the GitHub homepage and select "New repository" to create a new repository. Give your repository a name and provide a description.</li><br />
<ul><br />
<li>The repository name will be your folder name on gluey (see below)</li><br />
<li>Repository description is optional</li><br />
<li>Repository Setting:</li><br />
<ul><br />
<li>Private vs. Public</li><br />
<li>License (optional) - MIT License is well known and least restrictive</li><br />
<li>You can add a README file</li><br />
<li>You can also rename the main branch (this must be done before the repository is created, changing the name will change all subsequent repositories that are made in the future)</li><br />
<li>And more ...</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 3 --><br />
<li>Once the repository is setup online, add a Personal Access Token</li><br />
<ul><br />
<li>At the top-right of the GitHub website click on the pull-down and select "Settings"</li><br />
<li>On the left select "Developer settings" located at the bottom </li><br />
<li>Then on the left select "Personal access tokens"</li><br />
<li>Select "Fine-grained tokens" or "Tokens (classic)", I did the prior one</li><br />
<ul><br />
<li>For the Fine-grained token you will need to select which permissions you'd like to allow (not sure about the classic token)</li><br />
<li>Select a period for the token to be valid, upto 90 days maximum (I believe)</li><br />
<li>Once complete it will provide you with the token you can copy, this will be used in place of your password later</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 4 --><br />
<li>Clone your repository</li><br />
<ul><br />
<li>Log in to gluey using a VNC and navigate to the location in your annex where you'll be working</li><br />
<ul><br />
<li>You can do the same for your home computer, you'll just need to open a terminal or command prompt and navigate to the directory where you want to store your code</li><br />
</ul><br />
<li><u>Type the command:</u><br> <b>git clone https&#58;&#47;&#47;github&#46;com&#47;your-username&#47;your-repository&#46;git</b><br> <i>&ensp; - Make sure to replace "your-username" with your GitHub username and "your- <br />
repository" <br />
with the name of your repository</i></li><br />
<li>You will now need to login. Use your <b>GitHub Username</b>, but make sure to use the <b>Personal Access Token</b> you created earlier and <b><u>NOT</u></b> your GitHub password</li><br />
</ul><br><br />
<br />
<!-- Step 5 --><br />
<li>At this point you should have a new folder in your annex with the name of your GitHub repository</li><br />
<ul><br />
<li>Confirm that the remote repository is correctly added, use the command:<br> <b>git remote -v</b><br></li><br />
<li>If needed, you can link the local repository to the remote repository using:<br> <b>git remote add origin &lt;repository-url&gt;</b><br></li><br />
</ul><br><br />
<br />
<!-- Step 6 --><br />
<li>To switch to or determine a branch in Git, you can use the git checkout command:<br />
<ul><br />
<li>Determine the name of the branch you want to switch to via:<br> <b>git branch</b><br> <br />
<i>&ensp; - It will show all branches available and indicate your current branch with a * </i><br></li><br />
<li>Create a new branch using: <br> <br />
<b>git branch new-branch-name</b> </li><br />
<li>Switch to that branch and work in it via:<br><br />
<b>git checkout new-branch-name</b> <br></li><br><br />
<li>The two steps above can be combined:<br> <br />
<b>git checkout -b new-branch-name</b> <br><br />
&ensp; <i>- This will <b>create and switch</b> to the new branch in one step</i></li><br><br />
</ul><br />
<br />
<!-- Step 7 --><br />
<li>Add files/folders to your directory</li><br><br />
<br />
<!-- Step 8 --><br />
<li>When you're ready to save, make sure you are in the root directory of your repository or the directory where the new folder you want to save is located. Then use the git add command to add the new folder and its contents to <br />
the staging area. Run the following command:<br><br />
<b>git add folder-name</b><br><br />
<i>&ensp;- Adds the specified file or folder</i><br><br />
&emsp; OR <br><br />
<b>git add .</b> <br><br />
<i>&ensp;- Adds all new files and folders in the current directory recursively, does not add higher directory information</i><br><br />
&emsp; OR <br><br />
<b>git add -A</b> <br><br />
<i>&ensp;- Adds all files: new, modified, and deleted files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br />
&emsp; OR <br><br />
<b>git add -u</b> <br><br />
<i>&ensp;- Adds modified and deleted files only. Excludes new files. It will include files in the current directory and in higher directories that belong to the same git repository</i><br><br><br />
For a more detailed description of <i>git add</i> go to: https://github.com/git-guides/git-add</li><br><br />
<br />
<!-- Step 9 --><br />
<li>Once the new folder/file is added to the staging area, you can commit the changes using the git commit command:<br> <b>git commit -m "Commit message"</b> <br><br />
<i>&ensp; - Replace <b>Commit message</b> with a descriptive message summarizing the changes you made. Keep " " around your message</i></li><br><br />
<br />
<!-- Step 10 --><br />
<li>After committing the changes (on your local machine), you can push them to the remote repository on GitHub using the git push command:<br> <b>git push origin branch-name</b><br><br />
<i>&ensp; - Replace <b>branch-name</b> with the name of the branch you want to push to (e.g., main)<br><br />
<i>&ensp; - You will need to login with your Username and Personal Access Token</li><br><br />
</ol><br />
<br />
<br />
<!-- For spacing: &nbsp; OR <br> &ensp; OR <br> &emsp; OR <br> --><br />
<!-- Smaller indent to Larger indent --></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=GitHub&diff=36398GitHub2023-05-31T14:41:26Z<p>Mcintyre: /* The Setup */</p>
<hr />
<div><font size="3">GitHub is a web-based platform that provides hosting of coding repositories. It offers a centralized location for people to store, manage, and allow collaboration on their code. It is especially useful for version control and project tracking. The following information is geared towards linking gluey annex repositories with GitHub, but can easily be used to link your home computer to a GitHub repository. This wiki page is being updated as the author learns how to use GitHub, so if you know a better, more efficient way to accomplish a task then by all means please do it that way (... and add an addendum to this page if you have a login).</font><br />
<br />
== <u>The Setup</u> ==<br />
<ol><br />
<!-- Step 1 --><br />
<li>Sign up for a GitHub account by going to the [https://github.com/ GitHub website] and create a new account<br><i>- If you do not make your email address public you will have problems pushing your code later</i></li><br><br />
<br />
<!-- Step 2 --><br />
<li>Once you're logged in, click on the "+" sign at the top-right corner of the GitHub homepage and select "New repository" to create a new repository. Give your repository a name and provide a description.</li><br />
<ul><br />
<li>The repository name will be your folder name on gluey (see below)</li><br />
<li>Repository description is optional</li><br />
<li>Repository Setting:</li><br />
<ul><br />
<li>Private vs. Public</li><br />
<li>License (optional) - MIT License is well known and least restrictive</li><br />
<li>You can add a README file</li><br />
<li>You can also rename the main branch (this must be done before the repository is created, changing the name will change all subsequent repositories that are made in the future)</li><br />
<li>And more ...</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 3 --><br />
<li>Once the repository is setup online, add a Personal Access Token</li><br />
<ul><br />
<li>At the top-right of the GitHub website click on the pull-down and select "Settings"</li><br />
<li>On the left select "Developer settings" located at the bottom </li><br />
<li>Then on the left select "Personal access tokens"</li><br />
<li>Select "Fine-grained tokens" or "Tokens (classic)", I did the prior one</li><br />
<ul><br />
<li>For the Fine-grained token you will need to select which permissions you'd like to allow (not sure about the classic token)</li><br />
<li>Select a period for the token to be valid, upto 90 days maximum (I believe)</li><br />
<li>Once complete it will provide you with the token you can copy, this will be used in place of your password later</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 4 --><br />
<li>Clone your repository</li><br />
<ul><br />
<li>Log in to gluey using a VNC and navigate to the location in your annex where you'll be working</li><br />
<ul><br />
<li>You can do the same for your home computer, you'll just need to open a terminal or command prompt and navigate to the directory where you want to store your code</li><br />
</ul><br />
<li><u>Type the command:</u><br> <b>git clone https&#58;&#47;&#47;github&#46;com&#47;your-username&#47;your-repository&#46;git</b><br> <i>&ensp; - Make sure to replace "your-username" with your GitHub username and "your- <br />
repository" <br />
with the name of your repository</i></li><br />
<li>You will now need to login. Use your <b>GitHub Username</b>, but make sure to use the <b>Personal Access Token</b> you created earlier and <b><u>NOT</u></b> your GitHub password</li><br />
</ul><br><br />
<br />
<!-- Step 5 --><br />
<li>At this point you should have a new folder in your annex with the name of your GitHub repository</li><br />
<ul><br />
<li>Confirm that the remote repository is correctly added, use the command:<br> <b>git remote -v</b><br></li><br />
<li>If needed, you can link the local repository to the remote repository using:<br> <b>git remote add origin &lt;repository-url&gt;</b><br></li><br />
</ul><br><br />
<br />
<!-- Step 6 --><br />
<li>To switch to or determine a branch in Git, you can use the git checkout command:<br />
<ul><br />
<li>Determine the name of the branch you want to switch to via:<br> <b>git branch</b><br> <br />
<i>&ensp; - It will show all branches available and indicate your current branch with a * </i><br></li><br />
<li>Create a new branch using: <br> <br />
<b>git branch new-branch-name</b> </li><br />
<li>Switch to that branch and work in it via:<br><br />
<b>git checkout new-branch-name</b> <br></li><br><br />
<li>The two steps above can be combined:<br> <br />
<b>git checkout -b new-branch-name</b> <br><br />
&ensp; <i>- This will <b>create and switch</b> to the new branch in one step</i></li><br><br />
</ul><br />
<br />
<!-- Step 7 --><br />
<li>Add files/folders to your directory</li><br><br />
<br />
<!-- Step 8 --><br />
<li>When you're ready to save, make sure you are in the root directory of your repository or the directory where the new folder you want to save is located. Then use the git add command to add the new folder and its contents to <br />
the staging area. Run the following command:<br><br />
<b>git add folder-name</b><br> <br />
&ensp; OR <br><br />
<b>git add .</b> <br> If you want to add all new files and folders in the current directory</li><br><br />
https://github.com/git-guides/git-add<br />
<br />
<!-- Step 9 --><br />
<li>Once the new folder/file is added to the staging area, you can commit the changes using the git commit command:<br> <b>git commit -m "Commit message"</b> <br> Replace <i>Commit message</i> with a descriptive message summarizing the changes you made.</li><br><br />
<br />
<!-- Step 10 --><br />
<li>After committing the changes (on your local machine), you can push them to the remote repository on GitHub using the git push command:<br> <b>git push origin branch-name</b><br> Replace <i>branch-name</i> with the name of the branch you want to push to (e.g., main)<br> You will need to login with your Username and Personal Access Token</li><br><br />
</ol><br />
<br />
<br />
<!-- For spacing &nbsp; OR <br><br />
&ensp; OR <br><br />
&emsp; OR <br> --></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=GitHub&diff=36397GitHub2023-05-31T14:18:32Z<p>Mcintyre: /* The Setup */</p>
<hr />
<div><font size="3">GitHub is a web-based platform that provides hosting of coding repositories. It offers a centralized location for people to store, manage, and allow collaboration on their code. It is especially useful for version control and project tracking. The following information is geared towards linking gluey annex repositories with GitHub, but can easily be used to link your home computer to a GitHub repository. This wiki page is being updated as the author learns how to use GitHub, so if you know a better, more efficient way to accomplish a task then by all means please do it that way (... and add an addendum to this page if you have a login).</font><br />
<br />
== <u>The Setup</u> ==<br />
<ol><br />
<!-- Step 1 --><br />
<li>Sign up for a GitHub account by going to the [https://github.com/ GitHub website] and create a new account<br><i>- If you do not make your email address public you will have problems pushing your code later</i></li><br><br />
<br />
<!-- Step 2 --><br />
<li>Once you're logged in, click on the "+" sign at the top-right corner of the GitHub homepage and select "New repository" to create a new repository. Give your repository a name and provide a description.</li><br />
<ul><br />
<li>The repository name will be your folder name on gluey (see below)</li><br />
<li>Repository description is optional</li><br />
<li>Repository Setting:</li><br />
<ul><br />
<li>Private vs. Public</li><br />
<li>License (optional) - MIT License is well known and least restrictive</li><br />
<li>You can add a README file</li><br />
<li>You can also rename the main branch (this must be done before the repository is created, changing the name will change all subsequent repositories that are made in the future)</li><br />
<li>And more ...</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 3 --><br />
<li>Once the repository is setup online, add a Personal Access Token</li><br />
<ul><br />
<li>At the top-right of the GitHub website click on the pull-down and select "Settings"</li><br />
<li>On the left select "Developer settings" located at the bottom </li><br />
<li>Then on the left select "Personal access tokens"</li><br />
<li>Select "Fine-grained tokens" or "Tokens (classic)", I did the prior one</li><br />
<ul><br />
<li>For the Fine-grained token you will need to select which permissions you'd like to allow (not sure about the classic token)</li><br />
<li>Select a period for the token to be valid, upto 90 days maximum (I believe)</li><br />
<li>Once complete it will provide you with the token you can copy, this will be used in place of your password later</li><br><br />
</ul><br />
</ul><br />
<br />
<!-- Step 4 --><br />
<li>Clone your repository</li><br />
<ul><br />
<li>Log in to gluey using a VNC and navigate to the location in your annex where you'll be working</li><br />
<ul><br />
<li>You can do the same for your home computer, you'll just need to open a terminal or command prompt and navigate to the directory where you want to store your code</li><br />
</ul><br />
<li><u>Type the command:</u><br> <b>git clone https&#58;&#47;&#47;github&#46;com&#47;your-username&#47;your-repository&#46;git</b><br> <i>make sure to replace "your-username" with your GitHub username and "your-repository" with the name of your repository</i></li><br />
<li>You will now need to login. Use your <b>GitHub Username</b>, but make sure to use the <b>Personal Access Token</b> you created earlier and <b><u>NOT</u></b> your GitHub password</li><br />
</ul><br><br />
<br />
<!-- Step 5 --><br />
<li>At this point you should have a new folder in your annex with the name of your GitHub repository</li><br />
<ul><br />
<li>Confirm that the remote repository is correctly added, use the command:<br> <b>git remote -v</b><br></li><br />
<li>If needed, you can link the local repository to the remote repository using:<br> <b>git remote add origin &lt;repository-url&gt;</b><br></li><br />
</ul><br><br />
<br />
<!-- Step 6 --><br />
<li>To switch to or determine a branch in Git, you can use the git checkout command:<br />
<ul><br />
<li>Determine the name of the branch you want to switch to via:<br> <b>git branch</b><br> It will show all branches available and indicate your current branch with a * <br></li><br />
<li>Create a new branch using: <br> <b>git branch new-branch-name</b> then use <b>git checkout new-branch-name</b> to switch to that branch and work in it<br> OR <br> <b>git checkout -b new-branch-name</b> will create and switch to the new branch in one step</li><br><br />
</ul><br />
<br />
<!-- Step 7 --><br />
<li>Add files/folders to your directory</li><br><br />
<br />
<!-- Step 8 --><br />
<li>When you're ready to save, make sure you are in the root directory of your repository or the directory where the new folder you want to save is located. Then use the git add command to add the new folder and its contents to the staging area. Run the following command:<br> <b>git add folder-name</b><br> OR <br> <b>git add .</b> <br> If you want to add all new files and folders in the current directory</li><br><br />
<br />
<!-- Step 9 --><br />
<li>Once the new folder/file is added to the staging area, you can commit the changes using the git commit command:<br> <b>git commit -m "Commit message"</b> <br> Replace <i>Commit message</i> with a descriptive message summarizing the changes you made.</li><br><br />
<br />
<!-- Step 10 --><br />
<li>After committing the changes (on your local machine), you can push them to the remote repository on GitHub using the git push command:<br> <b>git push origin branch-name</b><br> Replace <i>branch-name</i> with the name of the branch you want to push to (e.g., main)<br> You will need to login with your Username and Personal Access Token</li><br><br />
</ol></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=GitHub&diff=36396GitHub2023-05-22T23:00:12Z<p>Mcintyre: </p>
<hr />
<div><font size="3">GitHub is a web-based platform that provides hosting of coding repositories. It offers a centralized location for people to store, manage, and allow collaboration on their code. It is especially useful for version control and project tracking. The following information is geared towards linking gluey annex repositories with GitHub, but can easily be used to link your home computer to a GitHub repository. This wiki page is being updated as the author learns how to use GitHub, so if you know a better, more efficient way to accomplish a task then by all means please do it that way (... and add an addendum to this page if you have a login).</font><br />
<br />
== <u>The Setup</u> ==<br />
<ol><br />
<li>Sign up for a GitHub account by going to the [https://github.com/ GitHub website] and create a new account<br><i>- If you do not make your email address public you will have problems pushing your code later</i></li><br><br />
<li>Once you're logged in, click on the "+" sign at the top-right corner of the GitHub homepage and select "New repository" to create a new repository. Give your repository a name and provide a description.</li><br />
<ul><br />
<li>The repository name will be your folder name on gluey (see below)</li><br />
<li>Repository description is optional</li><br />
<li>Repository Setting:</li><br />
<ul><br />
<li>Private vs. Public</li><br />
<li>License (optional) - MIT License is well known and least restrictive</li><br />
<li>You can add a README file</li><br />
<li>You can also rename the main branch (this must be done before the repository is created, changing the name will change all subsequent repositories that are made in the future)</li><br />
<li>And more ...</li><br><br />
</ul><br />
</ul><br />
<li>Once the repository is setup online, add a Personal Access Token</li><br />
<ul><br />
<li>At the top-right of the GitHub website click on the pull-down and select "Settings"</li><br />
<li>On the left select "Developer settings" located at the bottom </li><br />
<li>Then on the left select "Personal access tokens"</li><br />
<li>Select "Fine-grained tokens" or "Tokens (classic)", I did the prior one</li><br />
<ul><br />
<li>For the Fine-grained token you will need to select which permissions you'd like to allow (not sure about the classic token)</li><br />
<li>Select a period for the token to be valid, upto 90 days maximum (I believe)</li><br />
<li>Once complete it will provide you with the token you can copy, this will be used in place of your password later</li><br><br />
</ul><br />
</ul><br />
<li>Clone your repository</li><br />
<ul><br />
<li>Log in to gluey using a VNC and navigate to the location in your annex where you'll be working</li><br />
<ul><br />
<li>You can do the same for your home computer, you'll just need to open a terminal or command prompt and navigate to the directory where you want to store your code</li><br />
</ul><br />
<li><u>Type the command:</u><br> <b>git clone https&#58;&#47;&#47;github&#46;com&#47;your-username&#47;your-repository&#46;git</b><br> <i>make sure to replace "your-username" with your GitHub username and "your-repository" with the name of your repository</i></li><br />
<li>You will now need to login. Use your <b>GitHub Username</b>, but make sure to use the <b>Personal Access Token</b> you created earlier and <b><u>NOT</u></b> your GitHub password</li><br />
</ul><br><br />
<br />
<li>At this point you should have a new folder in your annex with the name of your GitHub repository</li><br />
<ul><br />
<li>Confirm that the remote repository is correctly added, use the command:<br> <b>git remote -v</b><br></li><br />
<li>If needed, you can link the local repository to the remote repository using:<br> <b>git remote add origin &lt;repository-url&gt;</b><br></li><br />
</ul><br><br />
<li>To switch to or determine a branch in Git, you can use the git checkout command:<br />
<ul><br />
<li>Determine the name of the branch you want to switch to via:<br> <b>git branch</b><br> It will show all branches available and indicate your current branch with a * <br></li><br />
<li>Create a new branch using: <br> <b>git branch new-branch-name</b> then use <b>git checkout new-branch-name</b> to switch to that branch and work in it<br> OR <br> <b>git checkout -b new-branch-name</b> will create and switch to the new branch in one step</li><br><br />
</ul><br />
<li>Add files/folders to your directory</li><br><br />
<li>When you're ready to save, make sure you are in the root directory of your repository or the directory where the new folder you want to save is located. Then use the git add command to add the new folder and its contents to the staging area. Run the following command:<br> <b>git add folder-name</b><br> OR <br> <b>git add .</b> <br> If you want to add all new files and folders in the current directory</li><br><br />
<li>Once the new folder/file is added to the staging area, you can commit the changes using the git commit command:<br> <b>git commit -m "Commit message"</b> <br> Replace <i>Commit message</i> with a descriptive message summarizing the changes you made.</li><br><br />
<li>After committing the changes (on your local machine), you can push them to the remote repository on GitHub using the git push command:<br> <b>git push origin branch-name</b><br> Replace <i>branch-name</i> with the name of the branch you want to push to (e.g., main)<br> You will need to login with your Username and Personal Access Token</li><br><br />
</ol></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=GitHub&diff=36395GitHub2023-05-22T22:37:58Z<p>Mcintyre: </p>
<hr />
<div><font size="3">GitHub is a web-based platform that provides hosting of coding repositories. It offers a centralized location for people to store, manage, and allow collaboration on their code. It is especially useful for version control and project tracking. The following information is geared towards linking gluey annex repositories with GitHub, but can easily be used to link your home computer to a GitHub repository. This wiki page is being updated as the author learns how to use GitHub, so if you know a better, more efficient way to accomplish a task then by all means please do it that way (... and add an addendum to this page if you have a login).</font><br />
<br />
== <u>The Setup</u> ==<br />
<ol><br />
<li>Sign up for a GitHub account by going to the [https://github.com/ GitHub website] and create a new account.</li><br><br />
<li>Once you're logged in, click on the "+" sign at the top-right corner of the GitHub homepage and select "New repository" to create a new repository. Give your repository a name and provide a description.</li><br />
<ul><br />
<li>The repository name will be your folder name on gluey (see below)</li><br />
<li>Repository description is optional</li><br />
<li>Repository Setting:</li><br />
<ul><br />
<li>Private vs. Public</li><br />
<li>License (optional) - MIT License is well known and least restrictive</li><br />
<li>You can add a README file</li><br />
<li>You can also rename the main branch (this must be done before the repository is created, changing the name will change all subsequent repositories that are made in the future)</li><br />
<li>And more ...</li><br><br />
</ul><br />
</ul><br />
<li>Once the repository is setup online, add a Personal Access Token</li><br />
<ul><br />
<li>At the top-right of the GitHub website click on the pull-down and select "Settings"</li><br />
<li>On the left select "Developer settings" located at the bottom </li><br />
<li>Then on the left select "Personal access tokens"</li><br />
<li>Select "Fine-grained tokens" or "Tokens (classic)", I did the prior one</li><br />
<ul><br />
<li>For the Fine-grained token you will need to select which permissions you'd like to allow (not sure about the classic token)</li><br />
<li>Select a period for the token to be valid, upto 90 days maximum (I believe)</li><br />
<li>Once complete it will provide you with the token you can copy, this will be used in place of your password later</li><br><br />
</ul><br />
</ul><br />
<li>Clone your repository</li><br />
<ul><br />
<li>Log in to gluey using a VNC and navigate to the location in your annex where you'll be working</li><br />
<ul><br />
<li>You can do the same for your home computer, you'll just need to open a terminal or command prompt and navigate to the directory where you want to store your code</li><br />
</ul><br />
<li><u>Type the command:</u><br> <b>git clone https&#58;&#47;&#47;github&#46;com&#47;your-username&#47;your-repository&#46;git</b><br> <i>make sure to replace "your-username" with your GitHub username and "your-repository" with the name of your repository</i></li><br />
<li>You will now need to login. Use your <b>GitHub Username</b>, but make sure to use the <b>Personal Access Token</b> you created earlier and <b><u>NOT</u></b> your GitHub password</li><br />
</ul><br />
<br />
<li>At this point you should have a new folder in your annex with the name of your GitHub repository</li><br />
<ul><br />
<li>Confirm that the remote repository is correctly added, use the command:<br> <b>git remote -v</b><br></li><br />
<li>If needed, you can link the local repository to the remote repository using:<br> <b>git remote add origin &lt;repository-url&gt;</b><br></li><br />
</ul><br><br />
<li>To switch to or determine a branch in Git, you can use the git checkout command:<br />
<ul><br />
<li>Determine the name of the branch you want to switch to via:<br> <b>git branch</b><br> It will show all branches available and indicate your current branch with a * <br></li><br />
<li>Create a new branch using: <br> <b>git branch new-branch-name</b> then use <b>git checkout new-branch-name</b> to switch to that branch and work in it<br> OR <br> <b>git checkout -b new-branch-name</b> will create and switch to the new branch in one step<br></li><br />
</ul><br />
<li>Add files/folders to your directory</li><br />
<li>When you're ready to save, make sure you are in the root directory of your repository or the directory where the new folder you want to save is located. Then use the git add command to add the new folder and its contents to the staging area. Run the following command:<br> <b>git add folder-name</b><br> OR <br> <b>git add .</b> <br> If you want to add all new files and folders in the current directory<br></li><br />
<li>Once the new folder/file is added to the staging area, you can commit the changes using the git commit command:<br> <b>git commit -m "Commit message"</b> <br> Replace "Commit message" with a descriptive message summarizing the changes you made.<br></li><br />
<li>After committing the changes (on your local machine), you can push them to the remote repository on GitHub using the git push command:<br> <b>git push origin branch-name</b><br> Replace <i>branch-name</i> with the name of the branch you want to push to (e.g., main).<br></li><br />
</ol></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=GitHub&diff=36394GitHub2023-05-22T21:33:37Z<p>Mcintyre: </p>
<hr />
<div><font size="3">GitHub is a web-based platform that provides hosting of coding repositories. It offers a centralized location for people to store, manage, and allow collaboration on their code. It is especially useful for version control and project tracking. The following information is geared towards linking gluey annex repositories with GitHub, but can easily be used to link your home computer to a GitHub repository. This wiki page is being updated as the author learns how to use GitHub, so if you know a better, more efficient way to accomplish a task then by all means please do it that way (... and add an addendum to this page if you have a login).</font><br />
<br />
== <u>The Setup</u> ==<br />
<br />
Create a new repository: Once you're logged in, click on the "+" sign at the top-right corner of the GitHub homepage and select "New repository." Give your repository a name and optionally provide a description.<br />
<br />
Choose repository settings: On the new repository page, you can customize various settings. You can make the repository public or private, add a license, initialize it with a README file, and choose other options as per your preference.<br />
<br />
Clone the repository: After creating the repository, you'll want to clone it to your local machine. To do this, you'll need to have Git installed on your computer. Open a terminal or command prompt and navigate to the directory where you want to store your code. Then, run the following command:<br />
<ol><br />
<li>Sign up for a GitHub account by going to the [https://github.com/ GitHub website] and create a new account.</li><br />
<li>Once you're logged in, click on the "+" sign at the top-right corner of the GitHub homepage and select "New repository" to create a new repository. Give your repository a name and provide a description.</li><br />
<ul><br />
<li>The repository name will be your folder name on gluey (see below)</li><br />
<li>Repository description is optional</li><br />
<li>Repository Setting:</li><br />
<ul><br />
<li>Private vs. Public</li><br />
<li>License (optional) - MIT License is well known and least restrictive</li><br />
<li>You can add a README file</li><br />
<li>And more ...</li><br />
</ul><br />
</ul><br />
<li>Once the repository is setup online, add a Personal Access Token</li><br />
<ul><br />
<li>At the top-right of the GitHub website click on the pull-down and select "Settings"</li><br />
<li>On the left select "Developer settings" located at the bottom </li><br />
<li>Then on the left select "Personal access tokens"</li><br />
<li>Select "Fine-grained tokens" or "Tokens (classic)", I did the prior one</li><br />
<ul><br />
<li>For the Fine-grained token you will need to select which permissions you'd like to allow (not sure about the classic token)</li><br />
<li>Select a period for the token to be valid, upto 90 days maximum (I believe)</li><br />
<li>Once complete it will provide you with the token you can copy, this will be used in place of your password later</li><br />
</ul><br />
</ul><br />
<li>Clone your repository</li><br />
<ul><br />
<li>Log in to gluey using a VNC and navigate to the location in your annex where you'll be working</li><br />
<ul><br />
<li>You can do the same for your home computer, you'll just need to open a terminal or command prompt and navigate to the directory where you want to store your code</li><br />
</ul><br />
<li>Type the command: <i><b>git clone https://github.com/your-username/your-repository.git</b></i> where you'll replace "your-username" with your GitHub username and "your-repository" with the name of your repository.</li><br />
<br />
<br />
<li>Then on the left select "Personal access tokens"</li><br />
<li>Select "Fine-grained tokens" or "Tokens (classic)", I did the prior one</li><br />
<ul><br />
<li>For the Fine-grained token you will need to select which permissions you'd like to allow (not sure about the classic token)</li><br />
<li>Select a period for the token to be valid, upto 90 days maximum (I believe)</li><br />
<li>Once complete it will provide you with the token you can copy, this will be used in place of your password later</li><br />
</ul><br />
</ul><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
</ol></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=Student_Projects_in_Nuclear_Physics&diff=36393Student Projects in Nuclear Physics2023-05-22T19:55:36Z<p>Mcintyre: /* GitHub Repository */</p>
<hr />
<div><font size="-1"><i>This work is supported by the U.S. National Science Foundation under grant 2209480</i></font><br />
<br />
<b>The following talk was presented by group member Eric Ercolani to the UConn Frontiers in Undergraduate Research in April, 2021.</b><br />
<br />
{{#widget:Video|url=https://zeus.phys.uconn.edu/wiki/images/Ercolani_frontiers_presentation_2021.mp4|width=800|height=480}}<br />
<!--<br />
<div style="position:relative;top:5px;"><br />
<slideshow sequence="random" transition="fade" refresh="5000"><br />
<div>[[File:front_img1.jpg|left|600px|Caption 1]]</div><br />
<div>[[File:front_img2.jpg|left|600px|Caption 1]]</div><br />
<div>[[File:front_img3.jpg|left|600px|Caption 1]]</div><br />
<div>[[File:front_img4.jpg|left|600px|Caption 1]]</div><br />
<div>[[File:front_img5.jpg|left|600px|Caption 1]]</div><br />
<div>[[File:front_img6.jpg|left|600px|Caption 1]]</div><br />
<div>[[File:front_img7.jpg|left|600px|Caption 1]]</div><br />
<div>[[File:front_img8.jpg|left|600px|Caption 1]]</div><br />
<div>[[File:front_img9.jpg|left|600px|Caption 1]]</div><br />
<div>[[File:front_img10.jpg|left|600px|Caption 1]]</div><br />
</slideshow><br />
</div><br />
<div class="slideshow-spacer" style="position:relative;left:620px;height:480px;">__TOC__</div><br />
--><br />
<br />
== Student pages ==<br />
=== Student Videos on Data Analysis Techniques ===<br />
* [[ROOT Data Analysis Framework Overview]] - [[User: mcintyre|James McIntyre]]<br />
<br />
=== Tagger Microscope Installation and Commissioning ===<br />
* [[Tagger Microscope Status]] - [[User: barnes|Alex Barnes]]<br />
* [[Microscope Installation Pictures]] - [[User: barnes|Alex Barnes]], [[User: bpratt18|Brendan Pratt]], [[User: mcintyre|James McIntyre]]<br />
* [[Fiber Installation]] - [[User: barnes|Alex Barnes]], [[User: bpratt18|Brendan Pratt]], [[User: mcintyre|James McIntyre]]<br />
* [[media:TAGM_fiber_geometry.pdf|Fiber geometry and numbering scheme]] - Richard Jones<br />
* [[Lab Journals|Inclusive listing of lab journals of students who worked on this project]]<br />
<br />
=== Tagger Microscope Mechanical Construction ===<br />
* [[Moving the Tagger Microscope]] - [[User: mcintyre|James McIntyre]]<br />
** [[Calculating the move]] - [[User: mcintyre|James McIntyre]]<br />
** [[Tagger Microscope Placement in the Tagger Hall]] - [[User: mcintyre|James McIntyre]]<br />
* [[Tagger Microscope Construction]] - [[User: mcintyre|James McIntyre]], [[User: barnes|Alex Barnes]]<br />
* [[Construction of the Full-Scale Tagger Microscope]] - [[User: carrolla|Ann Marie Carroll]], [[User: mcintyre|James McIntyre]], [[User: jonathank| Jonathan Kulakofsky]], [[User: Liana|Liana Hotte]], [[User:brand| Kenny Brand]], [[User: Bartolotta| John Bartolotta]], [[User: Acarta|Aaron Carta]]<br />
* [[Full Scale Tagger Microscope Drawings|Tagger Microscope Engineering Drawings]] - [[User: mcintyre|James McIntyre]]<br />
* [[Replacement Fibers Construction and Assessment]] - [[User: micahwarren|Micah Warren]]<br />
<br />
=== Tagger Microscope Electronics ===<br />
* [[Microscope Electronics]] - [[User: Barnes|Alex Barnes]], [[User: Senderovich|Igor Senderovich]], [[User: jonathank| Jonathan Kulakofsky]]<br />
* [[Euro Card Connectors]] - [[User:Barnes|Alex Barnes]], [[User: mcintyre|James Mcintyre]]<br />
* [[Darkbox Fiber Testing Setup]] - [[User: Barnes|Alex Barnes]]<br />
'''<br />
<br />
=== Active Collimator Installation and Commissioning ===<br />
* [[Assembly and bench tests with the active collimator]] - [[User: Bartolotta| John Bartolotta]]<br />
* [[Active Collimator Installation Pictures]] - [[User: barnes|Alex Barnes]]<br />
<br />
=== Diamond Radiator Fabrication and Mounting ===<br />
* [[Diamond Radiator Thinning Using an Excimer Laser]] - [[User: bpratt18|Brendan Pratt]]<br />
* [[Diamond Mounting]] - [[User: bpratt18|Brendan Pratt]]<br />
* [[Analysis of Diamond Cantilever Vibration]] - [[User:jess|Jessica Hyde]]<br />
* [[Surface Images and Thickness profile of Diamonds]] - [[User: mokaya|Fridah Mokaya]]<br />
<br />
=== Detector Development ===<br />
* [[Construction and testing of a GEM-based radon detector]] - [[User: andrewsampino|Andrew Sampino]], [[User: miravarma|Mira Varma]]<br />
<br />
=== Hadron Spectroscopy ===<br />
* [[Analysis of JETSET data: A Search for XYZ Meson Analogs|Summary of 2008 XYZ Meson Review]] - [[User:Senderovich|Igor Senderovich]]<br />
* [[Exotic b1&pi; Channel Simulation and Analysis]] - [[User:Senderovich|Igor Senderovich]]<br />
<br />
=== Radphi Data Analysis ===<br />
* [[Private:Eta_Meson | &eta; Meson Cross Section Analysis (UNDER CONSTRUCTION)]] - [[User: mcintyre|James McIntyre]]<br />
* [[Radphi_MonteCarlo|Omega photoproduction and backgrounds simulation]]<br />
<br />
=== GPU Computing ===<br />
*[[GPU/CPU Cooling System]] - [[User: mcintyre|James McIntyre]], [[User: Barnes|Alex Barnes]]<br />
*[[Media:JBCooling_system1.pdf|Cooling System Specification]] - [[User: bartolotta|John Bartolotta]]<br />
*[[GPU/CPU Cooling Loop Construction]] - [[User: andyw177|Andy Wang]]<br />
*[[GPU/CPU Cooling Loop Controls]] - [[User: francesyu|Frances Yu]], [[User: jeremyprema|Jeremy Prema]], [[User: sabrinashen|Sabrina Shen]], [[User: amarsinha|Amar Sinha]], [[User: varunyetukuri|Varun Yetukuri]]<br />
<br />
== Presentations and Posters ==<br />
===Conferences and Workshops===<br />
* [[media:AlexBarnes-JlabUG2016.pdf|Hall D & GlueX Update]], ''[[User: barnes| Alex Barnes]]'' - invited plenary talk, JLab Annual User's Group Meeting, Newport News, VA, June 20-22, 2016.<br />
* [[media:FridahMokaya-DNP2016.pdf|Spin density matrix elements for radiative decays of the omega meson in photoproduction at 5 GeV]], ''[[User: mokaya| Fridah Mokaya]]'' - contributed talk, APS-DNP Annual April Meeting, Salt Lake City, NM, Apr. 16-19, 2016.<br />
* [[media:AlexBarnes-DNP2015.pdf|Calibration of the Tagger Detectors with GlueX Commissioning Data]], ''[[User: barnes| Alex Barnes]]'' - contributed talk, APS-DNP Annual Fall Meeting, Santa Fe, NM, Oct. 28-31, 2015.<br />
* [[media:FridahMokaya-HEreactions-6-2015.pdf|High-Statistics Analysis of All-Neutral Decays of Mesons with the Radphi Experiment]], ''[[User: mokaya|Fridah Mokaya]]'' - contributed talk, 2015 International Summer Workshop on Reaction Theory, Bloomington, IN, June 8-19, 2015.<br />
* [[media:JamesMcIntyre-HEreactions-6-2015.pdf|High-Resolution Tagger Hodoscope for GlueX]], ''[[User: mcintyre|James McIntyre]]'' - contributed talk, 2015 International Summer Workshop on Reaction Theory, Bloomington, IN, June 8-19, 2015.<br />
* [[media:AlexBarnes-HEreactions-6-2015.pdf|GlueX at JLab]], ''[[User: barnes| Alex Barnes]]'' - contributed talk, Hampton University Graduate Summer School 2015, Newport News, VA, May29 - June 17, 2015.<br />
* [[media:BrendanPrattHUGS-2015.pdf|Diamond Radiator Development for the GlueX Experiment]], ''[[User: bpratt18|Brendan Pratt]]'' - contributed talk, 2015 International Summer Workshop on Reaction Theory, Bloomington, IN, June 8-19, 2015.<br />
* [[media:CHESS-Users-Meeting-6-2014.pptx|Thin Diamond Radiator Characterization at CHESS for the GlueX Experiment]], ''[[User: bpratt18|Brendan Pratt]]'' - poster, CHESS Annual User's Meeting, Ithaca, NY, June 10-11, 2014.<br />
* [[media:NDNC-2014.ppt|Thin Diamond Radiator Fabrication for the GlueX Experiment]] ''[[User: bpratt18|Brendan Pratt]]'' - contributed talk, New Diamond and Nano Carbons Conference, Chicago, IL, May 25-29, 2014.<br />
* [[media:AlexBarnes-DNP2013.pdf|The Development and Construction of the Tagger Microscope for the GlueX Experiment]], ''[[User: Barnes| Alex Barnes]]'' - contributed talk, DNP-2013 Newport News, VA, October, 2013.<br />
* [[media:ICDCM_2013.pdf|Thin Diamond Radiator Fabrication and Characterization for The GlueX Experiment]] - ''[[User: bpratt18|Brendan Pratt]]'' - poster, International Conference on Diamond and Carbon Materials, Riva del Garda, Italy, Sept. 2-5, 2013.<br />
* [[media:CHESS-Users-Meeting-6-2013.pdf|CHESS Rocking Curve Measurements of Thin Diamonds for the GlueX Experiment]], ''[[User: barnes|Alex Barnes]]'' - poster, CHESS Annual Users Meeting, Ithaca, NY, June 4-5, 2013.<br />
* [[media:Pratt_DNP2012.pdf|Thin Diamond Radiator Fabrication for the GlueX Experiment]], ''[[User: bpratt18|Brendan Pratt]]'' - contributed talk, APS-DNP Annual Fall Meeting, Newport Newport Beach, CA, Oct. 24-27, 2012.<br />
* [http://zeus.phys.uconn.edu/halld/glueXtalks/jonesDNP-10-2012.ppt Collimation and Tagging Instrumentation for the GlueX Photon Beamline], ''[[User: senderovich|Igor Senderovich]]'' - contributed talk, APS-DNP Annual Fall Meeting, Newport Beach, CA, Oct. 24-27, 2012.<br />
* [http://zeus.phys.uconn.edu/halld/glueXarticles/EmilyBriere_FinalReportREU2012.pdf Design and Fabrication of Calibration Device for Scintillating Fibers of Tagger Microscope: For use in GlueX’s QCD Experiment], ''Emily Briere'' - poster, Conference Experience for Undergraduates, Newport Beach, CA, Oct. 24-27, 2012.<br />
* [http://zeus.phys.uconn.edu/halld/glueXarticles/hadron2011_GlueX_proc.pdf Search for Gluonic Excitations in Hadrons with GlueX], ''[[User: senderovich|Igor Senderovich]]'', [http://www.slac.stanford.edu/econf/C110613/ Proceedings of the XIV International Conference on Hadron Spectroscopy, eds. S. Paul and N. Barmbilla], Munich, Germany, July 13-17, 2011.<br />
<br />
===Other Venues===<br />
* [[media:Frontiers_Poster_Ercolani.pdf|Applying Machine Learning to Particle Detectors]] ([[media:Frontiers_powerpoint_Ercolani.pdf|PowerPoint]], [https://drive.google.com/drive/folders/13wv5hE2CXHR7TEt69Q3iSIDmsrd0iQxh?usp=sharing video]), ''[[User: Ercolani|Alexander Ercolani]]'', Frontiers in Undergraduate Research 2021, Physics Department, University of Connecticut, March 2021.<br />
* [[media:mokaya-UConnGradPoster-4-2016.pdf|Spin density matrix elements for radiative decays of the omega meson in photoproduction at 5 GeV]], ''[[User: Mokaya|Fridah Mokaya]]'', poster, Annual Graduate Research Exhibition, Physics Department, University of Connecticut, March 11, 2016.<br />
* [[media:pratt-UConnGradPoster-4-2016.pdf|Diamond Radiator Fabrication and Characterization for the GlueX Experiment]], ''[[User: Bpratt18|Brendan Pratt]]'', poster, Annual Graduate Research Exhibition, Physics Department, University of Connecticut, March 11, 2016.<br />
*[[media:Ploen_Gluex_PGSA_Poster_Session_Mar_2016.pdf|Quantifying Light Loss in the Tagger Microscope for the GlueX Experiment ]], ''Christine Ploen'', poster, Annual Graduate Research Exhibition, Physics Department, University of Connecticut, March 11, 2016.<br />
* [[media:Hotte-Frontiers2015.pdf|Construction and Testing of the Photon Tagger Microscope for the GlueX Experiment]], ''[[User: Liana|Liana Hotte]]'' - poster at [http://ugradresearch.uconn.edu/wp-content/uploads/sites/323/2015/06/2015-Frontiers-Program.pdf Frontiers in Undergraduate Research 2015], University of Connecticut, Storrs, CT, April 10-11, 2015.<br />
* [[media:Barnes-Juniata-Talk.pdf|Understanding Confinement in Quantum Chromodynamics Through the GlueX Experiment]], ''[[User: barnes|Alex Barnes]]'' - invited seminar, Juniata College, Huntingdon, PA, Nov. 2 2012.<br />
* [[Listing of past undergraduate research projects|Posters and talks from past years]]<br />
<br />
== Completed Projects ==<br />
=== Undergrad Honors Projects ===<br />
* [https://drive.google.com/file/d/1WC3okst-mvnc8oF8zf6rgma0yn0_44cH/view?usp=sharing Applying Machine Learning to Particle Detectors] - Alexander Ercolani, 5/2021.<br />
* [[CP Fall 2015|Diagnostics of Light Yield from Scintillating Fibers]] - Christine Ploen, 5/2016.<br />
* [[media:LianaHotte_Honors_thesis2015.pdf|Construction of the Photon Tagger Microscope for the GlueX Experiment]] - Liana Hotte, 12/2015.<br />
* [http://zeus.phys.uconn.edu/halld/glueXarticles/EmilyBriere_FinalReportREU2012.pdf Design and Fabrication of Calibration Device for Scintillating Fibers of Tagger Microscope: For use in GlueX’s QCD Experiment], Emily Briere, REU project final report, August 1, 2012.<br />
* [[Listing of past undergraduate research projects]]<br />
<br />
=== High School Mentored Projects ===<br />
* [https://drive.google.com/file/d/1mYKY94VXu4nKqHBvKfnI5Hb3QFrSlkVv/view?usp=sharing CERN Beamline For Schools team advisor, 2021] - Zeno Chen, Arnav Thakrar, Anthony Song, Kanishk Tihaiya, Faizdeenkhan Pathan, Mayee Mavillapalli, Isha Bang<br />
* [https://drive.google.com/file/d/1RxBJcqBeSh4vrXquXX7jiVxxFZeedHl-/view?usp=sharing CERN Beamline For Schools team advisor, 2020] - Zeno Chen, Mayee Mavillapalli, Isha Bang, Dylian Erwin, Faizdeenkhan Pathan, Anthony Song <br />
* [https://docs.google.com/presentation/d/1xQ_EJKrmDIMl5glnDRx8PZWYaHf8DxMm/edit?usp=sharing&ouid=102507188652121797454&rtpof=true&sd=true Authentic Research Mentorship, Glasstonbury High School, 2018-19] - Richard Dube, Lily Horrigan<br />
* [[Mentor Connection 2014]] - ''Alden Richter, Omar Amer, and Suki Hyman'', 7/2014.<br />
* [[Mentor Connection 2014]] - ''Alden Richter, Omar Amer, and Suki Hyman'', 7/2014.<br />
* [[Mentor Connection 2014]] - ''Alden Richter, Omar Amer, and Suki Hyman'', 7/2014.<br />
* [[Mentor Connection 2013]] - ''Michael Reisman and Kyle Lockwood'', 7/2013.<br />
* [[all past years of Nuclear Physics Mentor Connection site|all past years]]<br />
<br />
== Theses ==<br />
*[[Alexander Ercolani]], [[media:ercolani_honors_thesis.pdf|Applying Machine Learning to Particle Detectors]], Undergraduate Honors Thesis, University of Connecticut, May 8, 2021.<br />
*[[User: Mokaya|Fridah Mokaya]], [http://opencommons.uconn.edu/dissertations/1821/ High Statistics Analysis of All-Neutral Decays of Vector Mesons with the Radphi Experiment], PhD Thesis, University of Connecticut, May 4, 2018.<br />
* [[User: bpratt18|Brendan Pratt]], [http://opencommons.uconn.edu/dissertations/1578/ Diamond Radiator Fabrication, Characterization and Performance for the GlueX Experiment], PhD Thesis, University of Connecticut, August 21, 2017.<br />
* [[User: Barnes|Alex Barnes]], [http://opencommons.uconn.edu/dissertations/1413/ Development of the Tagger Microscope & Analysis of Spin Density Matrix Elements in gamma,p -> phi(1020),p for the GlueX Experiment], PhD Thesis, University of Connecticut, May 5, 2017.<br />
* [[User: Liana|Liana Hotte]], [[media:LianaHotte_Honors_thesis2015.pdf|Construction of the Photon Tagger Microscope for the GlueX Experiment]], Undergraduate Honors Thesis, University of Connecticut, December 18, 2015.<br />
* [[User: senderovich|Igor Senderovich]], [http://zeus.phys.uconn.edu/halld/IgorThesis-9-2012/PhDthesis-final.pdf Search for Gluonic Excitations in Hadrons with GlueX], PhD thesis, University of Connecticut, August 24, 2012.<br />
* Chris Pelletier, [[Vibration Analysis for Diamond Bremsstrahlung Targets]], Undergraduate Honors Thesis, University of Connecticut, May 11, 2011.<br />
* Mitchell Underwood, [[Design of Electronics for a High-Energy Photon Tagger for the GlueX Experiment]], Undergraduate Honors Thesis, University of Connecticut, May 8, 2010.<br />
<br />
== Tutorials ==<br />
=== Data Science Applications ===<br />
* [https://cn410.storrs.hpc.uconn.edu/tutorials UConn Data Science Tutorials] - Eric Habjan<br />
<br />
=== ROOT Data Analysis Framework ===<br />
* [[ROOT Data Analysis Framework Overview | ROOT Data Analysis Framework Overview]] - [[User: mcintyre|James McIntyre]]<br />
<br />
=== 3D Printing ===<br />
* [[Private:How to 3D Print | How to 3D Print (Under Construction)]] - [[User: mcintyre|James McIntyre]], [[User: Willis|Ben Willis]]<br />
<br />
=== Machine Learning ===<br />
* [[Python | Python: Programming Language]] - [[User: mcintyre|James McIntyre]]<br />
* [[SciPy | SciPy (Scientific Python): Open-source Library]] - [[User: mcintyre|James McIntyre]]<br />
* [[NumPy | NumPy (Numerical Python): Open-source Library]] - [[User: mcintyre|James McIntyre]]<br />
* [[Pandas | Pandas: Data Handling in Python]] - [[User: mcintyre|James McIntyre]]<br />
* [[Keras | Keras: Deep Learning Framework]] - [[User: mcintyre|James McIntyre]]<br />
* [[TensorFlow | TensorFlow Decision Forests]] - [[User: mcintyre|James McIntyre]]<br />
* [[Kaggle | Kaggle: No-setup, customizable, Jupyter Notebooks environment]] - [[User: mcintyre|James McIntyre]]<br />
* [[SVM | SVM: Support Vector Machines]] - [[User: mcintyre|James McIntyre]], Eric Habjan<br />
<br />
=== GitHub Repository ===<br />
* [[GitHub | GitHub: Data Backup]] - [[User: mcintyre|James McIntyre]]<br />
<br />
== Help ==<br />
* [[Administrative Guide for New Group Members]]<br />
* [[How to start a Chrome Remote Desktop session on Linux]]<br />
* [[Private:Poster printing directions|How to print a poster in P403]]<br />
* [[Notes on distributed authoring software tools]]<br />
* [[Example page]] - Richard Jones<br />
* [[Test page]] - testing<br />
<br />
== References ==<br />
* [[Group Photos]]<br />
* [[Physics References]]<br />
* Jefferson Lab Accelerator Schedule [[media:JLabThree-YearSchedule.pdf|2014-2016]], [[media:JLabThree-YearSchedule2.pdf|2016-2018]]<br />
* [[JLab Module Manuals|JLab VME Module Manuals]]<br />
* [[Video: Introduction to GlueX by Prof. Curtis Meyer]]<br />
<br />
== Safety Resources ==<br />
<br />
* [https://docs.google.com/spreadsheets/d/1QrP9avFvB7SAJM8cn0O1tRAdHM4H14bubLpcG-yVQlU/edit?usp=sharing Chemical Inventory P-403 and P-405]</div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=GitHub&diff=36392GitHub2023-05-22T19:44:35Z<p>Mcintyre: Blanked the page</p>
<hr />
<div></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=SVM&diff=36391SVM2023-05-22T19:40:47Z<p>Mcintyre: </p>
<hr />
<div>== Support Vector Machines ==<br />
<font>Support Vector Machines (SVM) are a class of machine learning algorithms used for classification and regression tasks. In a classification problem, SVMs aim to find an optimal hyperplane that separates different classes of data points with the largest possible margin. The hyperplane is a decision boundary that maximizes the distance between the nearest data points from each class, known as support vectors. SVMs can handle both linearly separable and non-linearly separable data by employing various kernel functions. The idea behind SVMs is to transform input data into a higher-dimensional feature space using the kernel trick, which allows the algorithm to find a linear separation in this transformed space. This transformation enables SVMs to handle complex decision boundaries that may not be linear in the original feature space. During the training phase, SVMs aim to find the optimal hyperplane by solving a quadratic optimization problem. The objective is to minimize the classification error while maximizing the margin. The margin is defined as the perpendicular distance between the hyperplane and the support vectors. By maximizing the margin, SVMs tend to produce a more robust and generalized model. In addition to binary classification, SVMs can be extended to handle multi-class problems using techniques such as one-vs-one or one-vs-all classification. SVMs also have a formulation for regression tasks, known as Support Vector Regression (SVR), where the objective is to fit the data while limiting the deviations within a certain margin. SVMs have several advantages, such as their ability to handle high-dimensional data, effective generalization, and resistance to overfitting. They can be computationally expensive, particularly with large datasets, and the selection of the appropriate kernel and its parameters can be challenging.</font><br />
<br />
<br />
<u><b>The following are some useful YouTube videos:</b></u><br />
<html><br />
<head><br />
<title>YouTube Video Click-to-Play</title><br />
</head><br />
<body><br />
<div id="video-container"><br />
</div><br />
<br />
<script><br />
function loadVideo(videoId) {<br />
var container = document.getElementById('video-container');<br />
var videoUrl = 'https://www.youtube.com/embed/' + videoId;<br />
<br />
var iframe = document.createElement('iframe');<br />
iframe.src = videoUrl;<br />
iframe.width = 960;<br />
iframe.height = 540;<br />
iframe.setAttribute('allow', 'autoplay');<br />
container.innerHTML = ''; // Clear existing content<br />
container.appendChild(iframe);<br />
}<br />
</script><br />
</body><br />
</html><br />
<br />
=== <u>Part 1</u> ===<br />
<font><i>A run down of what SVMs are and what they can be used for. All of the necessary background to get started with using SVMs.</i></font> <br><br />
<html><br />
<head><br />
<title>YouTube Video Click-to-Play</title><br />
</head><br />
<body><br />
<div id="video-container"><br />
<button onclick="loadVideo('efR1C6CvhmE')">SVM: Main Ideas</button> <font size="1" color="blue">&larr; Click-to-play</font><br />
</div><br />
</body><br />
</html><br />
[https://www.youtube.com/watch?v=efR1C6CvhmE Support Vector Machines Main Ideas] <br><br />
<br />
<br />
=== <u>Part 2</u> ===<br />
<font><i>A mathematical description of the Polynomial Kernel and how SVMs use this type of kernel to classify data. This video describes how the Polynomial Kernel classifies data in a set number of dimensions.</i></font> <br><br />
<html><br />
<head><br />
<title>YouTube Video Click-to-Play</title><br />
</head><br />
<body><br />
<div id="video-container"><br />
<button onclick="loadVideo('Toet3EiSFcM')">SVM: The Polynomial Kernel</button> <font size="1" color="blue">&larr; Click-to-play</font><br />
</div><br />
<br />
<script><br />
function loadVideo(videoId) {<br />
var container = document.getElementById('video-container');<br />
var videoUrl = 'https://www.youtube.com/embed/' + videoId;<br />
<br />
var iframe = document.createElement('iframe');<br />
iframe.src = videoUrl;<br />
iframe.width = 960;<br />
iframe.height = 540;<br />
iframe.setAttribute('allow', 'autoplay');<br />
container.innerHTML = ''; // Clear existing content<br />
container.appendChild(iframe);<br />
}<br />
</script><br />
</body><br />
</html><br />
[https://www.youtube.com/watch?v=Toet3EiSFcM The Polynomial Kernel] <br><br />
<br />
<br />
=== <u>Part 3</u> ===<br />
<font><i>A mathematical description of the Radial Kernel and how SVMs use this type of kernel to classify data. This video describes how the RBF classifies data in infinite dimensions.</i></font> <br><br />
<html><br />
<head><br />
<title>YouTube Video Click-to-Play</title><br />
</head><br />
<body><br />
<div id="video-container"><br />
<button onclick="loadVideo('Qc5IyLW_hns')">SVM: The Radial (RBF) Kernel</button> <font size="1" color="blue">&larr; Click-to-play</font><br />
</div><br />
<br />
<script><br />
function loadVideo(videoId) {<br />
var container = document.getElementById('video-container');<br />
var videoUrl = 'https://www.youtube.com/embed/' + videoId;<br />
<br />
var iframe = document.createElement('iframe');<br />
iframe.src = videoUrl;<br />
iframe.width = 960;<br />
iframe.height = 540;<br />
iframe.setAttribute('allow', 'autoplay');<br />
container.innerHTML = ''; // Clear existing content<br />
container.appendChild(iframe);<br />
}<br />
</script><br />
</body><br />
</html><br />
[https://www.youtube.com/watch?v=Qc5IyLW_hns The Radial (RBF) Kernel] <br><br />
<br></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=SVM&diff=36390SVM2023-05-22T19:38:38Z<p>Mcintyre: </p>
<hr />
<div>== Support Vector Machines ==<br />
<font>Support Vector Machines (SVM) are a class of machine learning algorithms used for classification and regression tasks. In a classification problem, SVMs aim to find an optimal hyperplane that separates different classes of data points with the largest possible margin. The hyperplane is a decision boundary that maximizes the distance between the nearest data points from each class, known as support vectors. SVMs can handle both linearly separable and non-linearly separable data by employing various kernel functions. The idea behind SVMs is to transform input data into a higher-dimensional feature space using the kernel trick, which allows the algorithm to find a linear separation in this transformed space. This transformation enables SVMs to handle complex decision boundaries that may not be linear in the original feature space. During the training phase, SVMs aim to find the optimal hyperplane by solving a quadratic optimization problem. The objective is to minimize the classification error while maximizing the margin. The margin is defined as the perpendicular distance between the hyperplane and the support vectors. By maximizing the margin, SVMs tend to produce a more robust and generalized model. In addition to binary classification, SVMs can be extended to handle multi-class problems using techniques such as one-vs-one or one-vs-all classification. SVMs also have a formulation for regression tasks, known as Support Vector Regression (SVR), where the objective is to fit the data while limiting the deviations within a certain margin. SVMs have several advantages, such as their ability to handle high-dimensional data, effective generalization, and resistance to overfitting. They can be computationally expensive, particularly with large datasets, and the selection of the appropriate kernel and its parameters can be challenging.</font><br />
<br />
<br />
<u><b>The following are some useful YouTube videos:</b></u> <br><br />
<br />
<html><br />
<head><br />
<title>YouTube Video Click-to-Play</title><br />
</head><br />
<body><br />
<div id="video-container"><br />
</div><br />
<br />
<script><br />
function loadVideo(videoId) {<br />
var container = document.getElementById('video-container');<br />
var videoUrl = 'https://www.youtube.com/embed/' + videoId;<br />
<br />
var iframe = document.createElement('iframe');<br />
iframe.src = videoUrl;<br />
iframe.width = 960;<br />
iframe.height = 540;<br />
iframe.setAttribute('allow', 'autoplay');<br />
container.innerHTML = ''; // Clear existing content<br />
container.appendChild(iframe);<br />
}<br />
</script><br />
</body><br />
</html><br />
<br />
<br />
<br />
=== <u>Part 1</u> ===<br />
<font><i>A run down of what SVMs are and what they can be used for. All of the necessary background to get started with using SVMs.</i></font> <br><br />
<html><br />
<head><br />
<title>YouTube Video Click-to-Play</title><br />
</head><br />
<body><br />
<div id="video-container"><br />
<button onclick="loadVideo('efR1C6CvhmE')">SVM: Main Ideas</button> <font size="1" color="blue">&larr; Click-to-play</font><br />
</div><br />
</body><br />
</html><br />
[https://www.youtube.com/watch?v=efR1C6CvhmE Support Vector Machines Main Ideas] <br><br />
<br><br />
<br />
<br />
=== <u>Part 2</u> ===<br />
<font><i>A mathematical description of the Polynomial Kernel and how SVMs use this type of kernel to classify data. This video describes how the Polynomial Kernel classifies data in a set number of dimensions.</i></font> <br><br />
<html><br />
<head><br />
<title>YouTube Video Click-to-Play</title><br />
</head><br />
<body><br />
<div id="video-container"><br />
<button onclick="loadVideo('Toet3EiSFcM')">SVM: The Polynomial Kernel</button> <font size="1" color="blue">&larr; Click-to-play</font><br />
</div><br />
<br />
<script><br />
function loadVideo(videoId) {<br />
var container = document.getElementById('video-container');<br />
var videoUrl = 'https://www.youtube.com/embed/' + videoId;<br />
<br />
var iframe = document.createElement('iframe');<br />
iframe.src = videoUrl;<br />
iframe.width = 960;<br />
iframe.height = 540;<br />
iframe.setAttribute('allow', 'autoplay');<br />
container.innerHTML = ''; // Clear existing content<br />
container.appendChild(iframe);<br />
}<br />
</script><br />
</body><br />
</html><br />
[https://www.youtube.com/watch?v=Toet3EiSFcM The Polynomial Kernel] <br><br />
<br><br />
<br />
<br />
=== <u>Part 3</u> ===<br />
<font><i>A mathematical description of the Radial Kernel and how SVMs use this type of kernel to classify data. This video describes how the RBF classifies data in infinite dimensions.</i></font> <br><br />
<html><br />
<head><br />
<title>YouTube Video Click-to-Play</title><br />
</head><br />
<body><br />
<div id="video-container"><br />
<button onclick="loadVideo('Qc5IyLW_hns')">SVM: The Radial (RBF) Kernel</button> <font size="1" color="blue">&larr; Click-to-play</font><br />
</div><br />
<br />
<script><br />
function loadVideo(videoId) {<br />
var container = document.getElementById('video-container');<br />
var videoUrl = 'https://www.youtube.com/embed/' + videoId;<br />
<br />
var iframe = document.createElement('iframe');<br />
iframe.src = videoUrl;<br />
iframe.width = 960;<br />
iframe.height = 540;<br />
iframe.setAttribute('allow', 'autoplay');<br />
container.innerHTML = ''; // Clear existing content<br />
container.appendChild(iframe);<br />
}<br />
</script><br />
</body><br />
</html><br />
[https://www.youtube.com/watch?v=Qc5IyLW_hns The Radial (RBF) Kernel] <br><br />
<br></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=SVM&diff=36389SVM2023-05-22T19:37:36Z<p>Mcintyre: </p>
<hr />
<div>== Support Vector Machines ==<br />
<font>Support Vector Machines (SVM) are a class of machine learning algorithms used for classification and regression tasks. In a classification problem, SVMs aim to find an optimal hyperplane that separates different classes of data points with the largest possible margin. The hyperplane is a decision boundary that maximizes the distance between the nearest data points from each class, known as support vectors. SVMs can handle both linearly separable and non-linearly separable data by employing various kernel functions. The idea behind SVMs is to transform input data into a higher-dimensional feature space using the kernel trick, which allows the algorithm to find a linear separation in this transformed space. This transformation enables SVMs to handle complex decision boundaries that may not be linear in the original feature space. During the training phase, SVMs aim to find the optimal hyperplane by solving a quadratic optimization problem. The objective is to minimize the classification error while maximizing the margin. The margin is defined as the perpendicular distance between the hyperplane and the support vectors. By maximizing the margin, SVMs tend to produce a more robust and generalized model. In addition to binary classification, SVMs can be extended to handle multi-class problems using techniques such as one-vs-one or one-vs-all classification. SVMs also have a formulation for regression tasks, known as Support Vector Regression (SVR), where the objective is to fit the data while limiting the deviations within a certain margin. SVMs have several advantages, such as their ability to handle high-dimensional data, effective generalization, and resistance to overfitting. They can be computationally expensive, particularly with large datasets, and the selection of the appropriate kernel and its parameters can be challenging.</font><br />
<br />
<br />
<u><b>The following are some useful YouTube videos:</b></u> <br><br />
<br />
<html><br />
<head><br />
<title>YouTube Video Click-to-Play</title><br />
</head><br />
<body><br />
<div id="video-container"><br />
<button onclick="loadVideo('efR1C6CvhmE')">Click to Play</button><br />
</div><br />
<br />
<script><br />
function loadVideo(videoId) {<br />
var container = document.getElementById('video-container');<br />
var videoUrl = 'https://www.youtube.com/embed/' + videoId;<br />
<br />
var iframe = document.createElement('iframe');<br />
iframe.src = videoUrl;<br />
iframe.width = 960;<br />
iframe.height = 540;<br />
iframe.setAttribute('allow', 'autoplay');<br />
container.innerHTML = ''; // Clear existing content<br />
container.appendChild(iframe);<br />
}<br />
</script><br />
</body><br />
</html><br />
<br />
<br />
<br />
=== <u>Part 1</u> ===<br />
<font><i>A run down of what SVMs are and what they can be used for. All of the necessary background to get started with using SVMs.</i></font> <br><br />
<html><br />
<head><br />
<title>YouTube Video Click-to-Play</title><br />
</head><br />
<body><br />
<div id="video-container"><br />
<button onclick="loadVideo('efR1C6CvhmE')">SVM: Main Ideas</button> <font size="1" color="blue">&larr; Click-to-play</font><br />
</div><br />
</body><br />
</html><br />
[https://www.youtube.com/watch?v=efR1C6CvhmE Support Vector Machines Main Ideas] <br><br />
<br><br />
<br />
<br />
=== <u>Part 2</u> ===<br />
<font><i>A mathematical description of the Polynomial Kernel and how SVMs use this type of kernel to classify data. This video describes how the Polynomial Kernel classifies data in a set number of dimensions.</i></font> <br><br />
<html><br />
<head><br />
<title>YouTube Video Click-to-Play</title><br />
</head><br />
<body><br />
<div id="video-container"><br />
<button onclick="loadVideo('Toet3EiSFcM')">SVM: The Polynomial Kernel</button> <font size="1" color="blue">&larr; Click-to-play</font><br />
</div><br />
<br />
<script><br />
function loadVideo(videoId) {<br />
var container = document.getElementById('video-container');<br />
var videoUrl = 'https://www.youtube.com/embed/' + videoId;<br />
<br />
var iframe = document.createElement('iframe');<br />
iframe.src = videoUrl;<br />
iframe.width = 960;<br />
iframe.height = 540;<br />
iframe.setAttribute('allow', 'autoplay');<br />
container.innerHTML = ''; // Clear existing content<br />
container.appendChild(iframe);<br />
}<br />
</script><br />
</body><br />
</html><br />
[https://www.youtube.com/watch?v=Toet3EiSFcM The Polynomial Kernel] <br><br />
<br><br />
<br />
<br />
=== <u>Part 3</u> ===<br />
<font><i>A mathematical description of the Radial Kernel and how SVMs use this type of kernel to classify data. This video describes how the RBF classifies data in infinite dimensions.</i></font> <br><br />
<html><br />
<head><br />
<title>YouTube Video Click-to-Play</title><br />
</head><br />
<body><br />
<div id="video-container"><br />
<button onclick="loadVideo('Qc5IyLW_hns')">SVM: The Radial (RBF) Kernel</button> <font size="1" color="blue">&larr; Click-to-play</font><br />
</div><br />
<br />
<script><br />
function loadVideo(videoId) {<br />
var container = document.getElementById('video-container');<br />
var videoUrl = 'https://www.youtube.com/embed/' + videoId;<br />
<br />
var iframe = document.createElement('iframe');<br />
iframe.src = videoUrl;<br />
iframe.width = 960;<br />
iframe.height = 540;<br />
iframe.setAttribute('allow', 'autoplay');<br />
container.innerHTML = ''; // Clear existing content<br />
container.appendChild(iframe);<br />
}<br />
</script><br />
</body><br />
</html><br />
[https://www.youtube.com/watch?v=Qc5IyLW_hns The Radial (RBF) Kernel] <br><br />
<br></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=SVM&diff=36388SVM2023-05-22T19:30:40Z<p>Mcintyre: </p>
<hr />
<div>== Support Vector Machines ==<br />
<font>Support Vector Machines (SVM) are a class of machine learning algorithms used for classification and regression tasks. In a classification problem, SVMs aim to find an optimal hyperplane that separates different classes of data points with the largest possible margin. The hyperplane is a decision boundary that maximizes the distance between the nearest data points from each class, known as support vectors. SVMs can handle both linearly separable and non-linearly separable data by employing various kernel functions. The idea behind SVMs is to transform input data into a higher-dimensional feature space using the kernel trick, which allows the algorithm to find a linear separation in this transformed space. This transformation enables SVMs to handle complex decision boundaries that may not be linear in the original feature space. During the training phase, SVMs aim to find the optimal hyperplane by solving a quadratic optimization problem. The objective is to minimize the classification error while maximizing the margin. The margin is defined as the perpendicular distance between the hyperplane and the support vectors. By maximizing the margin, SVMs tend to produce a more robust and generalized model. In addition to binary classification, SVMs can be extended to handle multi-class problems using techniques such as one-vs-one or one-vs-all classification. SVMs also have a formulation for regression tasks, known as Support Vector Regression (SVR), where the objective is to fit the data while limiting the deviations within a certain margin. SVMs have several advantages, such as their ability to handle high-dimensional data, effective generalization, and resistance to overfitting. They can be computationally expensive, particularly with large datasets, and the selection of the appropriate kernel and its parameters can be challenging.</font><br />
<br />
<br />
<u><b>The following are some useful YouTube videos:</b></u> <br><br />
<br />
<html><br />
<head><br />
<title>YouTube Video Click-to-Play</title><br />
</head><br />
<body><br />
<div id="video-container"><br />
<button onclick="loadVideo('efR1C6CvhmE')">Click to Play</button><br />
</div><br />
<br />
<script><br />
function loadVideo(videoId) {<br />
var container = document.getElementById('video-container');<br />
var videoUrl = 'https://www.youtube.com/embed/' + videoId;<br />
<br />
var iframe = document.createElement('iframe');<br />
iframe.src = videoUrl;<br />
iframe.width = 960;<br />
iframe.height = 540;<br />
iframe.setAttribute('allow', 'autoplay');<br />
container.innerHTML = ''; // Clear existing content<br />
container.appendChild(iframe);<br />
}<br />
</script><br />
</body><br />
</html><br />
<br />
<br />
<br />
=== <u>Part 1</u> ===<br />
<font><i>A run down of what SVMs are and what they can be used for. All of the necessary background to get started with using SVMs.</i></font> <br><br />
<html><br />
<head><br />
<title>YouTube Video Click-to-Play</title><br />
</head><br />
<body><br />
<div id="video-container"><br />
<button onclick="loadVideo('efR1C6CvhmE')">SVM: Main Ideas</button><br />
</div><br />
<br />
<script><br />
function loadVideo(videoId) {<br />
var container = document.getElementById('video-container');<br />
var videoUrl = 'https://www.youtube.com/embed/' + videoId;<br />
<br />
var iframe = document.createElement('iframe');<br />
iframe.src = videoUrl;<br />
iframe.width = 960;<br />
iframe.height = 540;<br />
iframe.setAttribute('allow', 'autoplay');<br />
container.innerHTML = ''; // Clear existing content<br />
container.appendChild(iframe);<br />
}<br />
</script><br />
</body><br />
</html><br />
[https://www.youtube.com/watch?v=efR1C6CvhmE Support Vector Machines Main Ideas] <br><br />
<br><br />
<br />
<br />
=== <u>Part 2</u> ===<br />
<font><i>A mathematical description of the Polynomial Kernel and how SVMs use this type of kernel to classify data. This video describes how the Polynomial Kernel classifies data in a set number of dimensions.</i></font> <br><br />
<html><br />
<head><br />
<title>YouTube Video Click-to-Play</title><br />
</head><br />
<body><br />
<div id="video-container"><br />
<button onclick="loadVideo('Toet3EiSFcM')">SVM: The Polynomial Kernel</button><br />
</div><br />
<br />
<script><br />
function loadVideo(videoId) {<br />
var container = document.getElementById('video-container');<br />
var videoUrl = 'https://www.youtube.com/embed/' + videoId;<br />
<br />
var iframe = document.createElement('iframe');<br />
iframe.src = videoUrl;<br />
iframe.width = 960;<br />
iframe.height = 540;<br />
iframe.setAttribute('allow', 'autoplay');<br />
container.innerHTML = ''; // Clear existing content<br />
container.appendChild(iframe);<br />
}<br />
</script><br />
</body><br />
</html><br />
[https://www.youtube.com/watch?v=Toet3EiSFcM The Polynomial Kernel] <br><br />
<br><br />
<br />
<br />
=== <u>Part 3</u> ===<br />
<font><i>A mathematical description of the Radial Kernel and how SVMs use this type of kernel to classify data. This video describes how the RBF classifies data in infinite dimensions.</i></font> <br><br />
<html><br />
<head><br />
<title>YouTube Video Click-to-Play</title><br />
</head><br />
<body><br />
<div id="video-container"><br />
<button onclick="loadVideo('Qc5IyLW_hns')">SVM: The Radial (RBF) Kernel</button><br />
</div><br />
<br />
<script><br />
function loadVideo(videoId) {<br />
var container = document.getElementById('video-container');<br />
var videoUrl = 'https://www.youtube.com/embed/' + videoId;<br />
<br />
var iframe = document.createElement('iframe');<br />
iframe.src = videoUrl;<br />
iframe.width = 960;<br />
iframe.height = 540;<br />
iframe.setAttribute('allow', 'autoplay');<br />
container.innerHTML = ''; // Clear existing content<br />
container.appendChild(iframe);<br />
}<br />
</script><br />
</body><br />
</html><br />
[https://www.youtube.com/watch?v=Qc5IyLW_hns The Radial (RBF) Kernel] <br><br />
<br></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=SVM&diff=36387SVM2023-05-22T19:23:41Z<p>Mcintyre: </p>
<hr />
<div>== Support Vector Machines ==<br />
<font>Support Vector Machines (SVM) are a class of machine learning algorithms used for classification and regression tasks. In a classification problem, SVMs aim to find an optimal hyperplane that separates different classes of data points with the largest possible margin. The hyperplane is a decision boundary that maximizes the distance between the nearest data points from each class, known as support vectors. SVMs can handle both linearly separable and non-linearly separable data by employing various kernel functions. The idea behind SVMs is to transform input data into a higher-dimensional feature space using the kernel trick, which allows the algorithm to find a linear separation in this transformed space. This transformation enables SVMs to handle complex decision boundaries that may not be linear in the original feature space. During the training phase, SVMs aim to find the optimal hyperplane by solving a quadratic optimization problem. The objective is to minimize the classification error while maximizing the margin. The margin is defined as the perpendicular distance between the hyperplane and the support vectors. By maximizing the margin, SVMs tend to produce a more robust and generalized model. In addition to binary classification, SVMs can be extended to handle multi-class problems using techniques such as one-vs-one or one-vs-all classification. SVMs also have a formulation for regression tasks, known as Support Vector Regression (SVR), where the objective is to fit the data while limiting the deviations within a certain margin. SVMs have several advantages, such as their ability to handle high-dimensional data, effective generalization, and resistance to overfitting. They can be computationally expensive, particularly with large datasets, and the selection of the appropriate kernel and its parameters can be challenging.</font><br />
<br />
<br />
<u><b>The following are some useful YouTube videos:</b></u><br />
<br />
=== <u>Part 1</u> ===<br />
<font><i>A run down of what SVMs are and what they can be used for. All of the necessary background to get started with using SVMs.</i></font> <br><br />
<html><br />
<head><br />
<title>YouTube Video Click-to-Play</title><br />
</head><br />
<body><br />
<div id="video-container"><br />
<button onclick="loadVideo('efR1C6CvhmE')">SVM: Main Ideas</button><br />
</div><br />
<br />
<script><br />
function loadVideo(videoId) {<br />
var container = document.getElementById('video-container');<br />
var videoUrl = 'https://www.youtube.com/embed/' + videoId;<br />
<br />
var iframe = document.createElement('iframe');<br />
iframe.src = videoUrl;<br />
iframe.width = 400;<br />
iframe.height = 240;<br />
iframe.setAttribute('allow', 'autoplay');<br />
container.innerHTML = ''; // Clear existing content<br />
container.appendChild(iframe);<br />
}<br />
</script><br />
</body><br />
</html><br />
[https://www.youtube.com/watch?v=efR1C6CvhmE Support Vector Machines Main Ideas] <br><br />
<br><br />
<br />
<br />
=== <u>Part 2</u> ===<br />
<font><i>A mathematical description of the Polynomial Kernel and how SVMs use this type of kernel to classify data. This video describes how the Polynomial Kernel classifies data in a set number of dimensions.</i></font> <br><br />
<html><br />
<head><br />
<title>YouTube Video Click-to-Play</title><br />
</head><br />
<body><br />
<div id="video-container"><br />
<button onclick="loadVideo('Toet3EiSFcM')">SVM: The Polynomial Kernel</button><br />
</div><br />
<br />
<script><br />
function loadVideo(videoId) {<br />
var container = document.getElementById('video-container');<br />
var videoUrl = 'https://www.youtube.com/embed/' + videoId;<br />
<br />
var iframe = document.createElement('iframe');<br />
iframe.src = videoUrl;<br />
iframe.width = 400;<br />
iframe.height = 240;<br />
iframe.setAttribute('allow', 'autoplay');<br />
container.innerHTML = ''; // Clear existing content<br />
container.appendChild(iframe);<br />
}<br />
</script><br />
</body><br />
</html><br />
[https://www.youtube.com/watch?v=Toet3EiSFcM The Polynomial Kernel] <br><br />
<br><br />
<br />
<br />
=== <u>Part 3</u> ===<br />
<font><i>A mathematical description of the Radial Kernel and how SVMs use this type of kernel to classify data. This video describes how the RBF classifies data in infinite dimensions.</i></font> <br><br />
<html><br />
<head><br />
<title>YouTube Video Click-to-Play</title><br />
</head><br />
<body><br />
<div id="video-container"><br />
<button onclick="loadVideo('Qc5IyLW_hns')">SVM: The Radial (RBF) Kernel</button><br />
</div><br />
<br />
<script><br />
function loadVideo(videoId) {<br />
var container = document.getElementById('video-container');<br />
var videoUrl = 'https://www.youtube.com/embed/' + videoId;<br />
<br />
var iframe = document.createElement('iframe');<br />
iframe.src = videoUrl;<br />
iframe.width = 400;<br />
iframe.height = 240;<br />
iframe.setAttribute('allow', 'autoplay');<br />
container.innerHTML = ''; // Clear existing content<br />
container.appendChild(iframe);<br />
}<br />
</script><br />
</body><br />
</html><br />
[https://www.youtube.com/watch?v=Qc5IyLW_hns The Radial (RBF) Kernel] <br><br />
<br></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=SVM&diff=36386SVM2023-05-22T19:18:44Z<p>Mcintyre: </p>
<hr />
<div>== Support Vector Machines ==<br />
<font>Support Vector Machines (SVM) are a class of machine learning algorithms used for classification and regression tasks. In a classification problem, SVMs aim to find an optimal hyperplane that separates different classes of data points with the largest possible margin. The hyperplane is a decision boundary that maximizes the distance between the nearest data points from each class, known as support vectors. SVMs can handle both linearly separable and non-linearly separable data by employing various kernel functions. The idea behind SVMs is to transform input data into a higher-dimensional feature space using the kernel trick, which allows the algorithm to find a linear separation in this transformed space. This transformation enables SVMs to handle complex decision boundaries that may not be linear in the original feature space. During the training phase, SVMs aim to find the optimal hyperplane by solving a quadratic optimization problem. The objective is to minimize the classification error while maximizing the margin. The margin is defined as the perpendicular distance between the hyperplane and the support vectors. By maximizing the margin, SVMs tend to produce a more robust and generalized model. In addition to binary classification, SVMs can be extended to handle multi-class problems using techniques such as one-vs-one or one-vs-all classification. SVMs also have a formulation for regression tasks, known as Support Vector Regression (SVR), where the objective is to fit the data while limiting the deviations within a certain margin. SVMs have several advantages, such as their ability to handle high-dimensional data, effective generalization, and resistance to overfitting. They can be computationally expensive, particularly with large datasets, and the selection of the appropriate kernel and its parameters can be challenging.</font><br />
<br />
<u><b>The following are some useful YouTube videos:</b></u><br />
<div id="video-container"></div><br />
<br />
<script><br />
function loadVideo(videoUrl) {<br />
var container = document.getElementById('video-container');<br />
container.innerHTML = ''; // Clear existing content<br />
<br />
var iframe = document.createElement('iframe');<br />
iframe.src = videoUrl;<br />
iframe.width = 400;<br />
iframe.height = 240;<br />
iframe.setAttribute('allow', 'autoplay');<br />
container.appendChild(iframe);<br />
}<br />
</script><br />
<br />
=== <u>Part 1</u> ===<br />
<font><i>A run down of what SVMs are and what they can be used for. All of the necessary background to get started with using SVMs.</i></font> <br><br />
<button onclick="loadVideo('https://www.youtube.com/embed/efR1C6CvhmE')">SVM: Main Ideas</button> <br><br />
<br><br />
<br />
=== <u>Part 2</u> ===<br />
<font><i>A mathematical description of the Polynomial Kernel and how SVMs use this type of kernel to classify data. This video describes how the Polynomial Kernel classifies data in a set number of dimensions.</i></font> <br><br />
<button onclick="loadVideo('https://www.youtube.com/embed/Toet3EiSFcM')">SVM: The Polynomial Kernel</button> <br><br />
<br><br />
<br />
=== <u>Part 3</u> ===<br />
<font><i>A mathematical description of the Radial Kernel and how SVMs use this type of kernel to classify data. This video describes how the RBF classifies data in infinite dimensions.</i></font> <br><br />
<button onclick="loadVideo('https://www.youtube.com/embed/Qc5IyLW_hns')">SVM: The Radial (RBF) Kernel</button> <br><br />
<br></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=SVM&diff=36385SVM2023-05-22T19:12:14Z<p>Mcintyre: </p>
<hr />
<div>== Support Vector Machines ==<br />
<font>Support Vector Machines (SVM) are a class of machine learning algorithms used for classification and regression tasks. In a classification problem, SVMs aim to find an optimal hyperplane that separates different classes of data points with the largest possible margin. The hyperplane is a decision boundary that maximizes the distance between the nearest data points from each class, known as support vectors. SVMs can handle both linearly separable and non-linearly separable data by employing various kernel functions. The idea behind SVMs is to transform input data into a higher-dimensional feature space using the kernel trick, which allows the algorithm to find a linear separation in this transformed space. This transformation enables SVMs to handle complex decision boundaries that may not be linear in the original feature space. During the training phase, SVMs aim to find the optimal hyperplane by solving a quadratic optimization problem. The objective is to minimize the classification error while maximizing the margin. The margin is defined as the perpendicular distance between the hyperplane and the support vectors. By maximizing the margin, SVMs tend to produce a more robust and generalized model. In addition to binary classification, SVMs can be extended to handle multi-class problems using techniques such as one-vs-one or one-vs-all classification. SVMs also have a formulation for regression tasks, known as Support Vector Regression (SVR), where the objective is to fit the data while limiting the deviations within a certain margin. SVMs have several advantages, such as their ability to handle high-dimensional data, effective generalization, and resistance to overfitting. They can be computationally expensive, particularly with large datasets, and the selection of the appropriate kernel and its parameters can be challenging.</font><br />
<br />
<br />
<u><b>The following are some useful YouTube videos:</b></u><br />
<br />
=== <u>Part 1</u> ===<br />
<font><i>A run down of what SVMs are and what they can be used for. All of the necessary background to get started with using SVMs.</i></font> <br><br />
<html><br />
<head><br />
<title>YouTube Video Click-to-Play</title><br />
</head><br />
<body><br />
<div id="video-container"><br />
<button onclick="loadVideo('efR1C6CvhmE')">SVM: Main Ideas</button><br />
</div><br />
<br />
<script><br />
function loadVideo(videoId) {<br />
var container = document.getElementById('video-container');<br />
var videoUrl = 'https://www.youtube.com/embed/' + videoId;<br />
<br />
var iframe = document.createElement('iframe');<br />
iframe.src = videoUrl;<br />
iframe.width = 400;<br />
iframe.height = 240;<br />
iframe.setAttribute('allow', 'autoplay');<br />
container.innerHTML = ''; // Clear existing content<br />
container.appendChild(iframe);<br />
}<br />
</script><br />
</body><br />
</html><br />
[https://www.youtube.com/watch?v=efR1C6CvhmE Support Vector Machines Main Ideas] <br><br />
<br><br />
<br />
<br />
=== <u>Part 2</u> ===<br />
<font><i>A mathematical description of the Polynomial Kernel and how SVMs use this type of kernel to classify data. This video describes how the Polynomial Kernel classifies data in a set number of dimensions.</i></font> <br><br />
<html><br />
<head><br />
<title>YouTube Video Click-to-Play</title><br />
</head><br />
<body><br />
<div id="video-container"><br />
<button onclick="loadVideo('Toet3EiSFcM')">SVM: The Polynomial Kernel</button><br />
</div><br />
<br />
<script><br />
function loadVideo(videoId) {<br />
var container = document.getElementById('video-container');<br />
var videoUrl = 'https://www.youtube.com/embed/' + videoId;<br />
<br />
var iframe = document.createElement('iframe');<br />
iframe.src = videoUrl;<br />
iframe.width = 400;<br />
iframe.height = 240;<br />
iframe.setAttribute('allow', 'autoplay');<br />
container.innerHTML = ''; // Clear existing content<br />
container.appendChild(iframe);<br />
}<br />
</script><br />
</body><br />
</html><br />
[https://www.youtube.com/watch?v=Toet3EiSFcM The Polynomial Kernel] <br><br />
<br><br />
<br />
<br />
=== <u>Part 3</u> ===<br />
<font><i>A mathematical description of the Radial Kernel and how SVMs use this type of kernel to classify data. This video describes how the RBF classifies data in infinite dimensions.</i></font> <br><br />
<html><br />
<head><br />
<title>YouTube Video Click-to-Play</title><br />
</head><br />
<body><br />
<div id="video-container"><br />
<button onclick="loadVideo('Qc5IyLW_hns')">SVM: The Radial (RBF) Kernel</button><br />
</div><br />
<br />
<script><br />
function loadVideo(videoId) {<br />
var container = document.getElementById('video-container');<br />
var videoUrl = 'https://www.youtube.com/embed/' + videoId;<br />
<br />
var iframe = document.createElement('iframe');<br />
iframe.src = videoUrl;<br />
iframe.width = 400;<br />
iframe.height = 240;<br />
iframe.setAttribute('allow', 'autoplay');<br />
container.innerHTML = ''; // Clear existing content<br />
container.appendChild(iframe);<br />
}<br />
</script><br />
</body><br />
</html><br />
[https://www.youtube.com/watch?v=Qc5IyLW_hns The Radial (RBF) Kernel] <br><br />
<br></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=SVM&diff=36384SVM2023-05-22T19:06:58Z<p>Mcintyre: </p>
<hr />
<div>== Support Vector Machines ==<br />
<font>Support Vector Machines (SVM) are a class of machine learning algorithms used for classification and regression tasks. In a classification problem, SVMs aim to find an optimal hyperplane that separates different classes of data points with the largest possible margin. The hyperplane is a decision boundary that maximizes the distance between the nearest data points from each class, known as support vectors. SVMs can handle both linearly separable and non-linearly separable data by employing various kernel functions. The idea behind SVMs is to transform input data into a higher-dimensional feature space using the kernel trick, which allows the algorithm to find a linear separation in this transformed space. This transformation enables SVMs to handle complex decision boundaries that may not be linear in the original feature space. During the training phase, SVMs aim to find the optimal hyperplane by solving a quadratic optimization problem. The objective is to minimize the classification error while maximizing the margin. The margin is defined as the perpendicular distance between the hyperplane and the support vectors. By maximizing the margin, SVMs tend to produce a more robust and generalized model. In addition to binary classification, SVMs can be extended to handle multi-class problems using techniques such as one-vs-one or one-vs-all classification. SVMs also have a formulation for regression tasks, known as Support Vector Regression (SVR), where the objective is to fit the data while limiting the deviations within a certain margin. SVMs have several advantages, such as their ability to handle high-dimensional data, effective generalization, and resistance to overfitting. They can be computationally expensive, particularly with large datasets, and the selection of the appropriate kernel and its parameters can be challenging.</font><br />
<br />
<br />
<u><b>The following are some useful YouTube videos:</b></u><br />
=== <u>Part 1</u> ===<br />
<font><i>A run down of what SVMs are and what they can be used for. All of the necessary background to get started with using SVMs.</i></font> <br><br />
<br />
<html><br />
<head><br />
<title>YouTube Video Click-to-Play</title><br />
</head><br />
<body><br />
<div id="video-container"><br />
<button onclick="loadVideo()">SVM: Main Ideas</button><br />
</div><br />
<br />
<script><br />
function loadVideo() {<br />
var container = document.getElementById('video-container');<br />
var videoUrl = 'https://www.youtube.com/embed/efR1C6CvhmE';<br />
<br />
var iframe = document.createElement('iframe');<br />
iframe.src = videoUrl;<br />
iframe.width = 400;<br />
iframe.height = 240;<br />
iframe.setAttribute('allow', 'autoplay');<br />
container.innerHTML = ''; // Clear existing content<br />
container.appendChild(iframe);<br />
}<br />
</script><br />
</body><br />
</html><br />
[https://www.youtube.com/watch?v=efR1C6CvhmE Support Vector Machines Main Ideas] <br><br />
<br><br />
<br />
<br />
=== <u>Part 2</u> ===<br />
<font><i>A mathematical description of the Polynomial Kernel and how SVMs use this type of kernel to classify data. This video describes how the Polynomial Kernel classifies data in a set number of dimensions.</i></font> <br><br />
<br />
<html><br />
<head><br />
<title>YouTube Video Click-to-Play</title><br />
</head><br />
<body><br />
<div id="video-container"><br />
<button onclick="loadVideo()">SVM: The Polynomial Kernel</button><br />
</div><br />
<br />
<script><br />
function loadVideo() {<br />
var container = document.getElementById('video-container');<br />
var videoUrl = 'https://www.youtube.com/watch?v=Toet3EiSFcM';<br />
<br />
var iframe = document.createElement('iframe');<br />
iframe.src = videoUrl;<br />
iframe.width = 400;<br />
iframe.height = 240;<br />
iframe.setAttribute('allow', 'autoplay');<br />
container.innerHTML = ''; // Clear existing content<br />
container.appendChild(iframe);<br />
}<br />
</script><br />
</body><br />
</html><br />
[https://www.youtube.com/watch?v=Toet3EiSFcM The Polynomial Kernel] <br><br />
<br><br />
<br />
<br />
=== <u>Part 3</u> ===<br />
<font><i>A mathematical description of the Radial Kernel and how SVMs use this type of kernel to classify data. This video describes how the RBF classifies data in infinite dimensions.</i></font> <br><br />
<html><br />
<head><br />
<title>YouTube Video Click-to-Play</title><br />
</head><br />
<body><br />
<div id="video-container"><br />
<button onclick="loadVideo()">SVM: The Radial (RBF) Kernel</button><br />
</div><br />
<br />
<script><br />
function loadVideo() {<br />
var container = document.getElementById('video-container');<br />
var videoUrl = 'https://www.youtube.com/watch?v=Qc5IyLW';<br />
<br />
var iframe = document.createElement('iframe');<br />
iframe.src = videoUrl;<br />
iframe.width = 400;<br />
iframe.height = 240;<br />
iframe.setAttribute('allow', 'autoplay');<br />
container.innerHTML = ''; // Clear existing content<br />
container.appendChild(iframe);<br />
}<br />
</script><br />
</body><br />
</html><br />
[https://www.youtube.com/watch?v=Qc5IyLW_hns The Radial (RBF) Kernel] <br><br />
<br></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=SVM&diff=36383SVM2023-05-22T18:58:17Z<p>Mcintyre: </p>
<hr />
<div><!DOCTYPE html><br />
<html><br />
<head><br />
<title>YouTube Video Click-to-Play</title><br />
</head><br />
<body><br />
<div id="video-container"><br />
<button onclick="loadVideo()">Click to Play Video</button><br />
</div><br />
<br />
<script><br />
function loadVideo() {<br />
var container = document.getElementById('video-container');<br />
var videoUrl = 'https://www.youtube.com/embed/efR1C6CvhmE';<br />
<br />
var iframe = document.createElement('iframe');<br />
iframe.src = videoUrl;<br />
iframe.width = 400;<br />
iframe.height = 240;<br />
iframe.setAttribute('allow', 'autoplay');<br />
container.innerHTML = ''; // Clear existing content<br />
container.appendChild(iframe);<br />
}<br />
</script><br />
</body><br />
</html></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=SVM&diff=36382SVM2023-05-22T18:56:50Z<p>Mcintyre: </p>
<hr />
<div><!DOCTYPE html><br />
<html><br />
<head><br />
<title>YouTube Video Auto Play</title><br />
</head><br />
<body><br />
<div id="video-container"></div><br />
<br />
<script><br />
function loadVideo() {<br />
var container = document.getElementById('video-container');<br />
var videoUrl = 'https://www.youtube.com/embed/efR1C6CvhmE?autoplay=1';<br />
<br />
var iframe = document.createElement('iframe');<br />
iframe.src = videoUrl;<br />
iframe.width = 400;<br />
iframe.height = 240;<br />
iframe.setAttribute('allow', 'autoplay');<br />
container.appendChild(iframe);<br />
}<br />
<br />
window.onload = loadVideo;<br />
</script><br />
</body><br />
</html></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=SVM&diff=36381SVM2023-05-22T18:52:16Z<p>Mcintyre: </p>
<hr />
<div>== Support Vector Machines ==<br />
<font>Support Vector Machines (SVM) are a class of machine learning algorithms used for classification and regression tasks. In a classification problem, SVMs aim to find an optimal hyperplane that separates different classes of data points with the largest possible margin. The hyperplane is a decision boundary that maximizes the distance between the nearest data points from each class, known as support vectors. SVMs can handle both linearly separable and non-linearly separable data by employing various kernel functions. The idea behind SVMs is to transform input data into a higher-dimensional feature space using the kernel trick, which allows the algorithm to find a linear separation in this transformed space. This transformation enables SVMs to handle complex decision boundaries that may not be linear in the original feature space. During the training phase, SVMs aim to find the optimal hyperplane by solving a quadratic optimization problem. The objective is to minimize the classification error while maximizing the margin. The margin is defined as the perpendicular distance between the hyperplane and the support vectors. By maximizing the margin, SVMs tend to produce a more robust and generalized model. In addition to binary classification, SVMs can be extended to handle multi-class problems using techniques such as one-vs-one or one-vs-all classification. SVMs also have a formulation for regression tasks, known as Support Vector Regression (SVR), where the objective is to fit the data while limiting the deviations within a certain margin. SVMs have several advantages, such as their ability to handle high-dimensional data, effective generalization, and resistance to overfitting. They can be computationally expensive, particularly with large datasets, and the selection of the appropriate kernel and its parameters can be challenging.</font><br />
<br />
<u><b>The following are some useful YouTube videos:</b></u><br />
<br />
=== <u>Part 1</u> ===<br />
<font><i>A run down of what SVMs are and what they can be used for. All of the necessary background to get started with using SVMs.</i></font><br />
<br><br />
<video width="400" height="240" controls><br />
<source src="https://www.youtube.com/embed/efR1C6CvhmE" type="video/mp4"><br />
Your browser does not support the video tag.<br />
</video><br />
<br><br />
<a href="https://www.youtube.com/watch?v=efR1C6CvhmE">Support Vector Machines Main Ideas</a><br />
<br><br />
<br><br />
<br />
=== <u>Part 2</u> ===<br />
<font><i>A mathematical description of the Polynomial Kernel and how SVMs use this type of kernel to classify data. This video describes how the Polynomial Kernel classifies data in a set number of dimensions.</i></font><br />
<br><br />
<video width="400" height="240" controls><br />
<source src="https://www.youtube.com/embed/Toet3EiSFcM" type="video/mp4"><br />
Your browser does not support the video tag.<br />
</video><br />
<br><br />
<a href="https://www.youtube.com/watch?v=Toet3EiSFcM">The Polynomial Kernel</a><br />
<br><br />
<br><br />
<br />
=== <u>Part 3</u> ===<br />
<font><i>A mathematical description of the Radial Kernel and how SVMs use this type of kernel to classify data. This video describes how the RBF classifies data in infinite dimensions.</i></font><br />
<br><br />
<video width="400" height="240" controls><br />
<source src="https://www.youtube.com/embed/Qc5IyLW_hns" type="video/mp4"><br />
Your browser does not support the video tag.<br />
</video><br />
<br><br />
<a href="https://www.youtube.com/watch?v=Qc5IyLW_hns">The Radial (RBF) Kernel</a><br />
<br><br />
<br></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=SVM&diff=36380SVM2023-05-22T18:46:39Z<p>Mcintyre: </p>
<hr />
<div>== Support Vector Machines ==<br />
<font>Support Vector Machines (SVM) are a class of machine learning algorithms used for classification and regression tasks. In a classification problem, SVMs aim to find an optimal hyperplane that separates different classes of data points with the largest possible margin. The hyperplane is a decision boundary that maximizes the distance between the nearest data points from each class, known as support vectors. SVMs can handle both linearly separable and non-linearly separable data by employing various kernel functions. The idea behind SVMs is to transform input data into a higher-dimensional feature space using the kernel trick, which allows the algorithm to find a linear separation in this transformed space. This transformation enables SVMs to handle complex decision boundaries that may not be linear in the original feature space. During the training phase, SVMs aim to find the optimal hyperplane by solving a quadratic optimization problem. The objective is to minimize the classification error while maximizing the margin. The margin is defined as the perpendicular distance between the hyperplane and the support vectors. By maximizing the margin, SVMs tend to produce a more robust and generalized model. In addition to binary classification, SVMs can be extended to handle multi-class problems using techniques such as one-vs-one or one-vs-all classification. SVMs also have a formulation for regression tasks, known as Support Vector Regression (SVR), where the objective is to fit the data while limiting the deviations within a certain margin. SVMs have several advantages, such as their ability to handle high-dimensional data, effective generalization, and resistance to overfitting. They can be computationally expensive, particularly with large datasets, and the selection of the appropriate kernel and its parameters can be challenging.</font><br />
<br />
<u><b>The following are some useful YouTube videos:</b></u><br />
<br />
=== <u>Part 1</u> ===<br />
<font><i>A run down of what SVMs are and what they can be used for. All of the necessary background to get started with using SVMs.</i></font><br />
<br><br />
<div class="video-box"><br />
<div class="play-button" onclick="playVideo('efR1C6CvhmE')">▶</div><br />
<iframe class="video-iframe" src="https://www.youtube.com/embed/efR1C6CvhmE"></iframe><br />
</div><br />
<br><br />
<a href="https://www.youtube.com/watch?v=efR1C6CvhmE">Support Vector Machines Main Ideas</a><br />
<br><br />
<br><br />
<br />
=== <u>Part 2</u> ===<br />
<font><i>A mathematical description of the Polynomial Kernel and how SVMs use this type of kernel to classify data. This video describes how the Polynomial Kernel classifies data in a set number of dimensions.</i></font><br />
<br><br />
<div class="video-box"><br />
<div class="play-button" onclick="playVideo('Toet3EiSFcM')">▶</div><br />
<iframe class="video-iframe" src="https://www.youtube.com/embed/Toet3EiSFcM"></iframe><br />
</div><br />
<br><br />
<a href="https://www.youtube.com/watch?v=Toet3EiSFcM">The Polynomial Kernel</a><br />
<br><br />
<br><br />
<br />
=== <u>Part 3</u> ===<br />
<font><i>A mathematical description of the Radial Kernel and how SVMs use this type of kernel to classify data. This video describes how the RBF classifies data in infinite dimensions.</i></font><br />
<br><br />
<div class="video-box"><br />
<div class="play-button" onclick="playVideo('Qc5IyLW_hns')">▶</div><br />
<iframe class="video-iframe" src="https://www.youtube.com/embed/Qc5IyLW_hns"></iframe><br />
</div><br />
<br><br />
<a href="https://www.youtube.com/watch?v=Qc5IyLW_hns">The Radial (RBF) Kernel</a><br />
<br><br />
<br><br />
<br />
<script><br />
function playVideo(videoId) {<br />
var iframe = document.createElement('iframe');<br />
iframe.src = 'https://www.youtube.com/embed/' + videoId + '?autoplay=1';<br />
iframe.width = 400;<br />
iframe.height = 240;<br />
iframe.setAttribute('allow', 'autoplay');<br />
<br />
var videoBox = event.target.parentNode;<br />
videoBox.innerHTML = '';<br />
videoBox.appendChild(iframe);<br />
}<br />
</script></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=GitHub&diff=36379GitHub2023-05-22T18:32:55Z<p>Mcintyre: </p>
<hr />
<div><html><br />
<head><br />
<title>YouTube Video Click Play</title><br />
<style><br />
.video-container {<br />
display: flex;<br />
flex-wrap: wrap;<br />
justify-content: center;<br />
gap: 20px;<br />
}<br />
<br />
.video-box {<br />
position: relative;<br />
width: 400px;<br />
height: 240px;<br />
}<br />
<br />
.play-button {<br />
position: absolute;<br />
top: 50%;<br />
left: 50%;<br />
transform: translate(-50%, -50%);<br />
font-size: 40px;<br />
color: white;<br />
cursor: pointer;<br />
}<br />
<br />
.video-iframe {<br />
width: 100%;<br />
height: 100%;<br />
}<br />
</style><br />
</head><br />
<body><br />
<div class="video-container"><br />
<div class="video-box"><br />
<div class="play-button" onclick="playVideo('efR1C6CvhmE')">▶</div><br />
<iframe class="video-iframe" src="https://www.youtube.com/embed/efR1C6CvhmE"></iframe><br />
</div><br />
<br />
<div class="video-box"><br />
<div class="play-button" onclick="playVideo('VIDEO_ID_2')">▶</div><br />
<iframe class="video-iframe" src="https://www.youtube.com/embed/VIDEO_ID_2"></iframe><br />
</div><br />
<br />
<!-- Add more video boxes as needed --><br />
</div><br />
<br />
<script><br />
function playVideo(videoId) {<br />
var iframe = document.createElement('iframe');<br />
iframe.src = 'https://www.youtube.com/embed/' + videoId + '?autoplay=1';<br />
iframe.width = 400;<br />
iframe.height = 240;<br />
iframe.setAttribute('allow', 'autoplay');<br />
<br />
var videoBox = event.target.parentNode;<br />
videoBox.innerHTML = '';<br />
videoBox.appendChild(iframe);<br />
}<br />
</script><br />
</body><br />
</html></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=GitHub&diff=36378GitHub2023-05-22T18:28:49Z<p>Mcintyre: Created page with "<!DOCTYPE html> <html> <head> <title>YouTube Video Auto Play</title> </head> <body> <div id="video-container"></div> <script> function loadVideo() {..."</p>
<hr />
<div><!DOCTYPE html><br />
<html><br />
<head><br />
<title>YouTube Video Auto Play</title><br />
</head><br />
<body><br />
<div id="video-container"></div><br />
<br />
<script><br />
function loadVideo() {<br />
var container = document.getElementById('video-container');<br />
var videoUrl = 'https://www.youtube.com/embed/efR1C6CvhmE?autoplay=1';<br />
<br />
var iframe = document.createElement('iframe');<br />
iframe.src = videoUrl;<br />
iframe.width = 400;<br />
iframe.height = 240;<br />
iframe.setAttribute('allow', 'autoplay');<br />
container.appendChild(iframe);<br />
}<br />
<br />
window.onload = loadVideo;<br />
</script><br />
</body><br />
</html></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=SVM&diff=36377SVM2023-05-20T23:06:36Z<p>Mcintyre: /* Part 1 */</p>
<hr />
<div>== Support Vector Machines ==<br />
<font>Support Vector Machines (SVM) are a class of machine learning algorithms used for classification and regression tasks. In a classification problem, SVMs aim to find an optimal hyperplane that separates different classes of data points with the largest possible margin. The hyperplane is a decision boundary that maximizes the distance between the nearest data points from each class, known as support vectors. SVMs can handle both linearly separable and non-linearly separable data by employing various kernel functions. The idea behind SVMs is to transform input data into a higher-dimensional feature space using the kernel trick, which allows the algorithm to find a linear separation in this transformed space. This transformation enables SVMs to handle complex decision boundaries that may not be linear in the original feature space. During the training phase, SVMs aim to find the optimal hyperplane by solving a quadratic optimization problem. The objective is to minimize the classification error while maximizing the margin. The margin is defined as the perpendicular distance between the hyperplane and the support vectors. By maximizing the margin, SVMs tend to produce a more robust and generalized model. In addition to binary classification, SVMs can be extended to handle multi-class problems using techniques such as one-vs-one or one-vs-all classification. SVMs also have a formulation for regression tasks, known as Support Vector Regression (SVR), where the objective is to fit the data while limiting the deviations within a certain margin. SVMs have several advantages, such as their ability to handle high-dimensional data, effective generalization, and resistance to overfitting. They can be computationally expensive, particularly with large datasets, and the selection of the appropriate kernel and its parameters can be challenging.</font><br />
<br />
<br />
<u><b>The following are some useful YouTube videos:</b></u><br />
=== <u>Part 1</u> ===<br />
<font><i>A run down of what SVMs are and what they can be used for. All of the necessary background to get started with using SVMs.</i></font> <br><br />
{{#widget:Video|url=https://www.youtube.com/watch?v=efR1C6CvhmE|width=400|height=240}} <br><br />
[https://www.youtube.com/watch?v=efR1C6CvhmE Support Vector Machines Main Ideas] <br><br />
<br><br />
<br />
=== <u>Part 2</u> ===<br />
<font><i>A mathematical description of the Polynomial Kernel and how SVMs use this type of kernel to classify data. This video describes how the Polynomial Kernel classifies data in a set number of dimensions.</i></font> <br><br />
{{#widget:Video|url=https://www.youtube.com/watch?v=Toet3EiSFcM|width=400|height=240}} <br><br />
[https://www.youtube.com/watch?v=Toet3EiSFcM The Polynomial Kernel] <br><br />
<br><br />
<br />
<br />
<br />
=== <u>Part 3</u> ===<br />
<font><i>A mathematical description of the Radial Kernel and how SVMs use this type of kernel to classify data. This video describes how the RBF classifies data in infinite dimensions.</i></font> <br><br />
{{#widget:Video|url=https://www.youtube.com/watch?v=Qc5IyLW_hns|width=400|height=240}} <br><br />
[https://www.youtube.com/watch?v=Qc5IyLW_hns The Radial (RBF) Kernel] <br><br />
<br></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=SVM&diff=36376SVM2023-05-20T23:05:34Z<p>Mcintyre: Created page with "== Support Vector Machines == <font>Support Vector Machines (SVM) are a class of machine learning algorithms used for classification and regression tasks. In a classification..."</p>
<hr />
<div>== Support Vector Machines ==<br />
<font>Support Vector Machines (SVM) are a class of machine learning algorithms used for classification and regression tasks. In a classification problem, SVMs aim to find an optimal hyperplane that separates different classes of data points with the largest possible margin. The hyperplane is a decision boundary that maximizes the distance between the nearest data points from each class, known as support vectors. SVMs can handle both linearly separable and non-linearly separable data by employing various kernel functions. The idea behind SVMs is to transform input data into a higher-dimensional feature space using the kernel trick, which allows the algorithm to find a linear separation in this transformed space. This transformation enables SVMs to handle complex decision boundaries that may not be linear in the original feature space. During the training phase, SVMs aim to find the optimal hyperplane by solving a quadratic optimization problem. The objective is to minimize the classification error while maximizing the margin. The margin is defined as the perpendicular distance between the hyperplane and the support vectors. By maximizing the margin, SVMs tend to produce a more robust and generalized model. In addition to binary classification, SVMs can be extended to handle multi-class problems using techniques such as one-vs-one or one-vs-all classification. SVMs also have a formulation for regression tasks, known as Support Vector Regression (SVR), where the objective is to fit the data while limiting the deviations within a certain margin. SVMs have several advantages, such as their ability to handle high-dimensional data, effective generalization, and resistance to overfitting. They can be computationally expensive, particularly with large datasets, and the selection of the appropriate kernel and its parameters can be challenging.</font><br />
<br />
<br />
<u><b>The following are some useful YouTube videos:</b></u><br />
=== <u>Part 1</u> ===<br />
<font><i>A run down of what SVMs are and what they can be used for. All of the necessary background to get started with using SVMs.</i></font> <br><br />
{{#widget:Video|url=https://www.youtube.com/watch?v=efR1C6CvhmE|width=400|height=240}} <br><br />
[https://www.youtube.com/watch?v=efR1C6CvhmE Support Vector Machines Main Ideas] <br><br />
<br><br />
<br />
<br />
<br />
=== <u>Part 2</u> ===<br />
<font><i>A mathematical description of the Polynomial Kernel and how SVMs use this type of kernel to classify data. This video describes how the Polynomial Kernel classifies data in a set number of dimensions.</i></font> <br><br />
{{#widget:Video|url=https://www.youtube.com/watch?v=Toet3EiSFcM|width=400|height=240}} <br><br />
[https://www.youtube.com/watch?v=Toet3EiSFcM The Polynomial Kernel] <br><br />
<br><br />
<br />
<br />
<br />
=== <u>Part 3</u> ===<br />
<font><i>A mathematical description of the Radial Kernel and how SVMs use this type of kernel to classify data. This video describes how the RBF classifies data in infinite dimensions.</i></font> <br><br />
{{#widget:Video|url=https://www.youtube.com/watch?v=Qc5IyLW_hns|width=400|height=240}} <br><br />
[https://www.youtube.com/watch?v=Qc5IyLW_hns The Radial (RBF) Kernel] <br><br />
<br></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=Student_Projects_in_Nuclear_Physics&diff=36375Student Projects in Nuclear Physics2023-05-20T22:40:35Z<p>Mcintyre: /* Tutorials */</p>
<hr />
<div><font size="-1"><i>This work is supported by the U.S. National Science Foundation under grant 2209480</i></font><br />
<br />
<b>The following talk was presented by group member Eric Ercolani to the UConn Frontiers in Undergraduate Research in April, 2021.</b><br />
<br />
{{#widget:Video|url=https://zeus.phys.uconn.edu/wiki/images/Ercolani_frontiers_presentation_2021.mp4|width=800|height=480}}<br />
<!--<br />
<div style="position:relative;top:5px;"><br />
<slideshow sequence="random" transition="fade" refresh="5000"><br />
<div>[[File:front_img1.jpg|left|600px|Caption 1]]</div><br />
<div>[[File:front_img2.jpg|left|600px|Caption 1]]</div><br />
<div>[[File:front_img3.jpg|left|600px|Caption 1]]</div><br />
<div>[[File:front_img4.jpg|left|600px|Caption 1]]</div><br />
<div>[[File:front_img5.jpg|left|600px|Caption 1]]</div><br />
<div>[[File:front_img6.jpg|left|600px|Caption 1]]</div><br />
<div>[[File:front_img7.jpg|left|600px|Caption 1]]</div><br />
<div>[[File:front_img8.jpg|left|600px|Caption 1]]</div><br />
<div>[[File:front_img9.jpg|left|600px|Caption 1]]</div><br />
<div>[[File:front_img10.jpg|left|600px|Caption 1]]</div><br />
</slideshow><br />
</div><br />
<div class="slideshow-spacer" style="position:relative;left:620px;height:480px;">__TOC__</div><br />
--><br />
<br />
== Student pages ==<br />
=== Student Videos on Data Analysis Techniques ===<br />
* [[ROOT Data Analysis Framework Overview]] - [[User: mcintyre|James McIntyre]]<br />
<br />
=== Tagger Microscope Installation and Commissioning ===<br />
* [[Tagger Microscope Status]] - [[User: barnes|Alex Barnes]]<br />
* [[Microscope Installation Pictures]] - [[User: barnes|Alex Barnes]], [[User: bpratt18|Brendan Pratt]], [[User: mcintyre|James McIntyre]]<br />
* [[Fiber Installation]] - [[User: barnes|Alex Barnes]], [[User: bpratt18|Brendan Pratt]], [[User: mcintyre|James McIntyre]]<br />
* [[media:TAGM_fiber_geometry.pdf|Fiber geometry and numbering scheme]] - Richard Jones<br />
* [[Lab Journals|Inclusive listing of lab journals of students who worked on this project]]<br />
<br />
=== Tagger Microscope Mechanical Construction ===<br />
* [[Moving the Tagger Microscope]] - [[User: mcintyre|James McIntyre]]<br />
** [[Calculating the move]] - [[User: mcintyre|James McIntyre]]<br />
** [[Tagger Microscope Placement in the Tagger Hall]] - [[User: mcintyre|James McIntyre]]<br />
* [[Tagger Microscope Construction]] - [[User: mcintyre|James McIntyre]], [[User: barnes|Alex Barnes]]<br />
* [[Construction of the Full-Scale Tagger Microscope]] - [[User: carrolla|Ann Marie Carroll]], [[User: mcintyre|James McIntyre]], [[User: jonathank| Jonathan Kulakofsky]], [[User: Liana|Liana Hotte]], [[User:brand| Kenny Brand]], [[User: Bartolotta| John Bartolotta]], [[User: Acarta|Aaron Carta]]<br />
* [[Full Scale Tagger Microscope Drawings|Tagger Microscope Engineering Drawings]] - [[User: mcintyre|James McIntyre]]<br />
* [[Replacement Fibers Construction and Assessment]] - [[User: micahwarren|Micah Warren]]<br />
<br />
=== Tagger Microscope Electronics ===<br />
* [[Microscope Electronics]] - [[User: Barnes|Alex Barnes]], [[User: Senderovich|Igor Senderovich]], [[User: jonathank| Jonathan Kulakofsky]]<br />
* [[Euro Card Connectors]] - [[User:Barnes|Alex Barnes]], [[User: mcintyre|James Mcintyre]]<br />
* [[Darkbox Fiber Testing Setup]] - [[User: Barnes|Alex Barnes]]<br />
'''<br />
<br />
=== Active Collimator Installation and Commissioning ===<br />
* [[Assembly and bench tests with the active collimator]] - [[User: Bartolotta| John Bartolotta]]<br />
* [[Active Collimator Installation Pictures]] - [[User: barnes|Alex Barnes]]<br />
<br />
=== Diamond Radiator Fabrication and Mounting ===<br />
* [[Diamond Radiator Thinning Using an Excimer Laser]] - [[User: bpratt18|Brendan Pratt]]<br />
* [[Diamond Mounting]] - [[User: bpratt18|Brendan Pratt]]<br />
* [[Analysis of Diamond Cantilever Vibration]] - [[User:jess|Jessica Hyde]]<br />
* [[Surface Images and Thickness profile of Diamonds]] - [[User: mokaya|Fridah Mokaya]]<br />
<br />
=== Detector Development ===<br />
* [[Construction and testing of a GEM-based radon detector]] - [[User: andrewsampino|Andrew Sampino]], [[User: miravarma|Mira Varma]]<br />
<br />
=== Hadron Spectroscopy ===<br />
* [[Analysis of JETSET data: A Search for XYZ Meson Analogs|Summary of 2008 XYZ Meson Review]] - [[User:Senderovich|Igor Senderovich]]<br />
* [[Exotic b1&pi; Channel Simulation and Analysis]] - [[User:Senderovich|Igor Senderovich]]<br />
<br />
=== Radphi Data Analysis ===<br />
* [[Private:Eta_Meson | &eta; Meson Cross Section Analysis (UNDER CONSTRUCTION)]] - [[User: mcintyre|James McIntyre]]<br />
* [[Radphi_MonteCarlo|Omega photoproduction and backgrounds simulation]]<br />
<br />
=== GPU Computing ===<br />
*[[GPU/CPU Cooling System]] - [[User: mcintyre|James McIntyre]], [[User: Barnes|Alex Barnes]]<br />
*[[Media:JBCooling_system1.pdf|Cooling System Specification]] - [[User: bartolotta|John Bartolotta]]<br />
*[[GPU/CPU Cooling Loop Construction]] - [[User: andyw177|Andy Wang]]<br />
*[[GPU/CPU Cooling Loop Controls]] - [[User: francesyu|Frances Yu]], [[User: jeremyprema|Jeremy Prema]], [[User: sabrinashen|Sabrina Shen]], [[User: amarsinha|Amar Sinha]], [[User: varunyetukuri|Varun Yetukuri]]<br />
<br />
== Presentations and Posters ==<br />
===Conferences and Workshops===<br />
* [[media:AlexBarnes-JlabUG2016.pdf|Hall D & GlueX Update]], ''[[User: barnes| Alex Barnes]]'' - invited plenary talk, JLab Annual User's Group Meeting, Newport News, VA, June 20-22, 2016.<br />
* [[media:FridahMokaya-DNP2016.pdf|Spin density matrix elements for radiative decays of the omega meson in photoproduction at 5 GeV]], ''[[User: mokaya| Fridah Mokaya]]'' - contributed talk, APS-DNP Annual April Meeting, Salt Lake City, NM, Apr. 16-19, 2016.<br />
* [[media:AlexBarnes-DNP2015.pdf|Calibration of the Tagger Detectors with GlueX Commissioning Data]], ''[[User: barnes| Alex Barnes]]'' - contributed talk, APS-DNP Annual Fall Meeting, Santa Fe, NM, Oct. 28-31, 2015.<br />
* [[media:FridahMokaya-HEreactions-6-2015.pdf|High-Statistics Analysis of All-Neutral Decays of Mesons with the Radphi Experiment]], ''[[User: mokaya|Fridah Mokaya]]'' - contributed talk, 2015 International Summer Workshop on Reaction Theory, Bloomington, IN, June 8-19, 2015.<br />
* [[media:JamesMcIntyre-HEreactions-6-2015.pdf|High-Resolution Tagger Hodoscope for GlueX]], ''[[User: mcintyre|James McIntyre]]'' - contributed talk, 2015 International Summer Workshop on Reaction Theory, Bloomington, IN, June 8-19, 2015.<br />
* [[media:AlexBarnes-HEreactions-6-2015.pdf|GlueX at JLab]], ''[[User: barnes| Alex Barnes]]'' - contributed talk, Hampton University Graduate Summer School 2015, Newport News, VA, May29 - June 17, 2015.<br />
* [[media:BrendanPrattHUGS-2015.pdf|Diamond Radiator Development for the GlueX Experiment]], ''[[User: bpratt18|Brendan Pratt]]'' - contributed talk, 2015 International Summer Workshop on Reaction Theory, Bloomington, IN, June 8-19, 2015.<br />
* [[media:CHESS-Users-Meeting-6-2014.pptx|Thin Diamond Radiator Characterization at CHESS for the GlueX Experiment]], ''[[User: bpratt18|Brendan Pratt]]'' - poster, CHESS Annual User's Meeting, Ithaca, NY, June 10-11, 2014.<br />
* [[media:NDNC-2014.ppt|Thin Diamond Radiator Fabrication for the GlueX Experiment]] ''[[User: bpratt18|Brendan Pratt]]'' - contributed talk, New Diamond and Nano Carbons Conference, Chicago, IL, May 25-29, 2014.<br />
* [[media:AlexBarnes-DNP2013.pdf|The Development and Construction of the Tagger Microscope for the GlueX Experiment]], ''[[User: Barnes| Alex Barnes]]'' - contributed talk, DNP-2013 Newport News, VA, October, 2013.<br />
* [[media:ICDCM_2013.pdf|Thin Diamond Radiator Fabrication and Characterization for The GlueX Experiment]] - ''[[User: bpratt18|Brendan Pratt]]'' - poster, International Conference on Diamond and Carbon Materials, Riva del Garda, Italy, Sept. 2-5, 2013.<br />
* [[media:CHESS-Users-Meeting-6-2013.pdf|CHESS Rocking Curve Measurements of Thin Diamonds for the GlueX Experiment]], ''[[User: barnes|Alex Barnes]]'' - poster, CHESS Annual Users Meeting, Ithaca, NY, June 4-5, 2013.<br />
* [[media:Pratt_DNP2012.pdf|Thin Diamond Radiator Fabrication for the GlueX Experiment]], ''[[User: bpratt18|Brendan Pratt]]'' - contributed talk, APS-DNP Annual Fall Meeting, Newport Newport Beach, CA, Oct. 24-27, 2012.<br />
* [http://zeus.phys.uconn.edu/halld/glueXtalks/jonesDNP-10-2012.ppt Collimation and Tagging Instrumentation for the GlueX Photon Beamline], ''[[User: senderovich|Igor Senderovich]]'' - contributed talk, APS-DNP Annual Fall Meeting, Newport Beach, CA, Oct. 24-27, 2012.<br />
* [http://zeus.phys.uconn.edu/halld/glueXarticles/EmilyBriere_FinalReportREU2012.pdf Design and Fabrication of Calibration Device for Scintillating Fibers of Tagger Microscope: For use in GlueX’s QCD Experiment], ''Emily Briere'' - poster, Conference Experience for Undergraduates, Newport Beach, CA, Oct. 24-27, 2012.<br />
* [http://zeus.phys.uconn.edu/halld/glueXarticles/hadron2011_GlueX_proc.pdf Search for Gluonic Excitations in Hadrons with GlueX], ''[[User: senderovich|Igor Senderovich]]'', [http://www.slac.stanford.edu/econf/C110613/ Proceedings of the XIV International Conference on Hadron Spectroscopy, eds. S. Paul and N. Barmbilla], Munich, Germany, July 13-17, 2011.<br />
<br />
===Other Venues===<br />
* [[media:Frontiers_Poster_Ercolani.pdf|Applying Machine Learning to Particle Detectors]] ([[media:Frontiers_powerpoint_Ercolani.pdf|PowerPoint]], [https://drive.google.com/drive/folders/13wv5hE2CXHR7TEt69Q3iSIDmsrd0iQxh?usp=sharing video]), ''[[User: Ercolani|Alexander Ercolani]]'', Frontiers in Undergraduate Research 2021, Physics Department, University of Connecticut, March 2021.<br />
* [[media:mokaya-UConnGradPoster-4-2016.pdf|Spin density matrix elements for radiative decays of the omega meson in photoproduction at 5 GeV]], ''[[User: Mokaya|Fridah Mokaya]]'', poster, Annual Graduate Research Exhibition, Physics Department, University of Connecticut, March 11, 2016.<br />
* [[media:pratt-UConnGradPoster-4-2016.pdf|Diamond Radiator Fabrication and Characterization for the GlueX Experiment]], ''[[User: Bpratt18|Brendan Pratt]]'', poster, Annual Graduate Research Exhibition, Physics Department, University of Connecticut, March 11, 2016.<br />
*[[media:Ploen_Gluex_PGSA_Poster_Session_Mar_2016.pdf|Quantifying Light Loss in the Tagger Microscope for the GlueX Experiment ]], ''Christine Ploen'', poster, Annual Graduate Research Exhibition, Physics Department, University of Connecticut, March 11, 2016.<br />
* [[media:Hotte-Frontiers2015.pdf|Construction and Testing of the Photon Tagger Microscope for the GlueX Experiment]], ''[[User: Liana|Liana Hotte]]'' - poster at [http://ugradresearch.uconn.edu/wp-content/uploads/sites/323/2015/06/2015-Frontiers-Program.pdf Frontiers in Undergraduate Research 2015], University of Connecticut, Storrs, CT, April 10-11, 2015.<br />
* [[media:Barnes-Juniata-Talk.pdf|Understanding Confinement in Quantum Chromodynamics Through the GlueX Experiment]], ''[[User: barnes|Alex Barnes]]'' - invited seminar, Juniata College, Huntingdon, PA, Nov. 2 2012.<br />
* [[Listing of past undergraduate research projects|Posters and talks from past years]]<br />
<br />
== Completed Projects ==<br />
=== Undergrad Honors Projects ===<br />
* [https://drive.google.com/file/d/1WC3okst-mvnc8oF8zf6rgma0yn0_44cH/view?usp=sharing Applying Machine Learning to Particle Detectors] - Alexander Ercolani, 5/2021.<br />
* [[CP Fall 2015|Diagnostics of Light Yield from Scintillating Fibers]] - Christine Ploen, 5/2016.<br />
* [[media:LianaHotte_Honors_thesis2015.pdf|Construction of the Photon Tagger Microscope for the GlueX Experiment]] - Liana Hotte, 12/2015.<br />
* [http://zeus.phys.uconn.edu/halld/glueXarticles/EmilyBriere_FinalReportREU2012.pdf Design and Fabrication of Calibration Device for Scintillating Fibers of Tagger Microscope: For use in GlueX’s QCD Experiment], Emily Briere, REU project final report, August 1, 2012.<br />
* [[Listing of past undergraduate research projects]]<br />
<br />
=== High School Mentored Projects ===<br />
* [https://drive.google.com/file/d/1mYKY94VXu4nKqHBvKfnI5Hb3QFrSlkVv/view?usp=sharing CERN Beamline For Schools team advisor, 2021] - Zeno Chen, Arnav Thakrar, Anthony Song, Kanishk Tihaiya, Faizdeenkhan Pathan, Mayee Mavillapalli, Isha Bang<br />
* [https://drive.google.com/file/d/1RxBJcqBeSh4vrXquXX7jiVxxFZeedHl-/view?usp=sharing CERN Beamline For Schools team advisor, 2020] - Zeno Chen, Mayee Mavillapalli, Isha Bang, Dylian Erwin, Faizdeenkhan Pathan, Anthony Song <br />
* [https://docs.google.com/presentation/d/1xQ_EJKrmDIMl5glnDRx8PZWYaHf8DxMm/edit?usp=sharing&ouid=102507188652121797454&rtpof=true&sd=true Authentic Research Mentorship, Glasstonbury High School, 2018-19] - Richard Dube, Lily Horrigan<br />
* [[Mentor Connection 2014]] - ''Alden Richter, Omar Amer, and Suki Hyman'', 7/2014.<br />
* [[Mentor Connection 2014]] - ''Alden Richter, Omar Amer, and Suki Hyman'', 7/2014.<br />
* [[Mentor Connection 2014]] - ''Alden Richter, Omar Amer, and Suki Hyman'', 7/2014.<br />
* [[Mentor Connection 2013]] - ''Michael Reisman and Kyle Lockwood'', 7/2013.<br />
* [[all past years of Nuclear Physics Mentor Connection site|all past years]]<br />
<br />
== Theses ==<br />
*[[Alexander Ercolani]], [[media:ercolani_honors_thesis.pdf|Applying Machine Learning to Particle Detectors]], Undergraduate Honors Thesis, University of Connecticut, May 8, 2021.<br />
*[[User: Mokaya|Fridah Mokaya]], [http://opencommons.uconn.edu/dissertations/1821/ High Statistics Analysis of All-Neutral Decays of Vector Mesons with the Radphi Experiment], PhD Thesis, University of Connecticut, May 4, 2018.<br />
* [[User: bpratt18|Brendan Pratt]], [http://opencommons.uconn.edu/dissertations/1578/ Diamond Radiator Fabrication, Characterization and Performance for the GlueX Experiment], PhD Thesis, University of Connecticut, August 21, 2017.<br />
* [[User: Barnes|Alex Barnes]], [http://opencommons.uconn.edu/dissertations/1413/ Development of the Tagger Microscope & Analysis of Spin Density Matrix Elements in gamma,p -> phi(1020),p for the GlueX Experiment], PhD Thesis, University of Connecticut, May 5, 2017.<br />
* [[User: Liana|Liana Hotte]], [[media:LianaHotte_Honors_thesis2015.pdf|Construction of the Photon Tagger Microscope for the GlueX Experiment]], Undergraduate Honors Thesis, University of Connecticut, December 18, 2015.<br />
* [[User: senderovich|Igor Senderovich]], [http://zeus.phys.uconn.edu/halld/IgorThesis-9-2012/PhDthesis-final.pdf Search for Gluonic Excitations in Hadrons with GlueX], PhD thesis, University of Connecticut, August 24, 2012.<br />
* Chris Pelletier, [[Vibration Analysis for Diamond Bremsstrahlung Targets]], Undergraduate Honors Thesis, University of Connecticut, May 11, 2011.<br />
* Mitchell Underwood, [[Design of Electronics for a High-Energy Photon Tagger for the GlueX Experiment]], Undergraduate Honors Thesis, University of Connecticut, May 8, 2010.<br />
<br />
== Tutorials ==<br />
=== Data Science Applications ===<br />
* [https://cn410.storrs.hpc.uconn.edu/tutorials UConn Data Science Tutorials] - Eric Habjan<br />
<br />
=== ROOT Data Analysis Framework ===<br />
* [[ROOT Data Analysis Framework Overview | ROOT Data Analysis Framework Overview]] - [[User: mcintyre|James McIntyre]]<br />
<br />
=== 3D Printing ===<br />
* [[Private:How to 3D Print | How to 3D Print (Under Construction)]] - [[User: mcintyre|James McIntyre]], [[User: Willis|Ben Willis]]<br />
<br />
=== Machine Learning ===<br />
* [[Python | Python: Programming Language]] - [[User: mcintyre|James McIntyre]]<br />
* [[SciPy | SciPy (Scientific Python): Open-source Library]] - [[User: mcintyre|James McIntyre]]<br />
* [[NumPy | NumPy (Numerical Python): Open-source Library]] - [[User: mcintyre|James McIntyre]]<br />
* [[Pandas | Pandas: Data Handling in Python]] - [[User: mcintyre|James McIntyre]]<br />
* [[Keras | Keras: Deep Learning Framework]] - [[User: mcintyre|James McIntyre]]<br />
* [[TensorFlow | TensorFlow Decision Forests]] - [[User: mcintyre|James McIntyre]]<br />
* [[Kaggle | Kaggle: No-setup, customizable, Jupyter Notebooks environment]] - [[User: mcintyre|James McIntyre]]<br />
* [[SVM | SVM: Support Vector Machines]] - [[User: mcintyre|James McIntyre]], Eric Habjan<br />
<br />
=== GitHub Repository ===<br />
* [[GitHub | GitHub: Data Backup]] - [[User: mcintyre|James McIntyre]]<br />
<br />
<br />
<!--<br />
https://www.kaggle.com/<br />
https://www.tensorflow.org/decision_forests/tutorials<br />
https://www.tensorflow.org/decision_forests<br />
https://keras.io/<br />
<br />
== Python Programming Language ==<br />
<font><i>NumPy is an open-source Python library created in 2005. It is used for working with arrays, but also has functions for working in the domain of linear algebra, fourier transform, and matrices.<br />
<br><br />
<br><br />
<u><b>Below are some websites with more information and beginner tutorials</u>:</b></i></font><br />
* [https://www.python.org/ Python Programming Language <b>(python.org)</b>]<br />
* [https://www.w3schools.com/python/default.asp Learn Python <b>(w3schools.com)</b>]<br />
* [https://www.geeksforgeeks.org/python-programming-language/ Python Programming <b>(geeksforgeeks.org)</b>]<br />
* [https://www.codecademy.com/catalog/language/python Python <b>(codecademy.com)</b>]<br />
* [https://docs.python.org/3/tutorial/index.html Python Tutorial <b>(python.org)</b>]<br />
* [https://learn.microsoft.com/en-us/windows/python/beginners Using Python on Windows <b>(learn.microsoft.com)</b>]<br />
<br />
<br />
* [ <b>()</b>]<br />
* [ <b>()</b>]<br />
* [ <b>()</b>]<br />
* [ <b>()</b>]<br />
* [ <b>()</b>]<br />
--><br />
<br />
== Help ==<br />
* [[Administrative Guide for New Group Members]]<br />
* [[How to start a Chrome Remote Desktop session on Linux]]<br />
* [[Private:Poster printing directions|How to print a poster in P403]]<br />
* [[Notes on distributed authoring software tools]]<br />
* [[Example page]] - Richard Jones<br />
* [[Test page]] - testing<br />
<br />
== References ==<br />
* [[Group Photos]]<br />
* [[Physics References]]<br />
* Jefferson Lab Accelerator Schedule [[media:JLabThree-YearSchedule.pdf|2014-2016]], [[media:JLabThree-YearSchedule2.pdf|2016-2018]]<br />
* [[JLab Module Manuals|JLab VME Module Manuals]]<br />
* [[Video: Introduction to GlueX by Prof. Curtis Meyer]]<br />
<br />
== Safety Resources ==<br />
<br />
* [https://docs.google.com/spreadsheets/d/1QrP9avFvB7SAJM8cn0O1tRAdHM4H14bubLpcG-yVQlU/edit?usp=sharing Chemical Inventory P-403 and P-405]</div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=TensorFlow&diff=36371TensorFlow2023-03-10T21:28:50Z<p>Mcintyre: /* TensorFlow */</p>
<hr />
<div>== TensorFlow ==<br />
<font><i> TensorFlow is a free and open-source software library for machine learning and artificial intelligence. It can be used across a range of tasks but has a particular focus on training and inference of deep neural networks. TensorFlow can be used in a wide variety of programming languages, including Python, JavaScript, C++, and Java. This flexibility lends itself to a range of applications in many different sectors. [https://en.wikipedia.org/wiki/TensorFlow <b>This information was copied from wikipedia.</b>]<br />
<br><br />
<br><br />
<u><b>Below are some websites with more information and beginner tutorials</u>:</b></i></font><br />
* [https://www.guru99.com/what-is-tensorflow.html What is TensorFlow <b>(guru99.com)</b>]<br />
* [https://www.youtube.com/@tensorflow TensorFlow: YouTube <b>(youtube.com)</b>]<br />
* [https://www.geeksforgeeks.org/introduction-to-tensorflow/ Introduction to TensorFlow <b>(geeksforgeeks.org)</b>]<br />
* [https://www.tensorflow.org/ TensorFlow <b>(tensorflow.org)</b>]<br />
* [https://pypi.org/project/tensorflow/ TensorFlow <b>(pypi.org)</b>]<br />
* [https://www.tensorflow.org/decision_forests TensorFlow: Decision Forests <b>(tensorflow.org)</b>]<br />
* [https://www.tensorflow.org/decision_forests/tutorials TensorFlow: Decision Forests Tutorials <b>(tensorflow.org)</b>]<br />
* [https://github.com/tensorflow/tensorflow TensorFlow GitHub <b>(github.com)</b>]<br />
<br />
<br></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=Python&diff=36370Python2023-03-10T21:27:30Z<p>Mcintyre: /* Python Programming Language */</p>
<hr />
<div>== Python Programming Language ==<br />
<font><i> Python is a high-level, general-purpose programming language.<br />
<br><br />
<br><br />
<u><b>Below are some websites with more information and beginner tutorials</u>:</b></i></font><br />
* [https://www.python.org/ Python Programming Language <b>(python.org)</b>]<br />
* [https://www.w3schools.com/python/default.asp Learn Python <b>(w3schools.com)</b>]<br />
* [https://www.geeksforgeeks.org/python-programming-language/ Python Programming <b>(geeksforgeeks.org)</b>]<br />
* [https://www.codecademy.com/catalog/language/python Python <b>(codecademy.com)</b>]<br />
* [https://docs.python.org/3/tutorial/index.html Python Tutorial <b>(python.org)</b>]<br />
* [https://learn.microsoft.com/en-us/windows/python/beginners Using Python on Windows <b>(learn.microsoft.com)</b>]</div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=Kaggle&diff=36369Kaggle2023-03-08T00:46:56Z<p>Mcintyre: </p>
<hr />
<div>== Kaggle ==<br />
<font><i> Kaggle is an online community of data scientists and machine learning practitioners. Kaggle allows users to find and publish data sets, explore and build models in a web-based data-science environment, work with other data scientists and machine learning engineers, and enter competitions to solve data science challenges. [https://en.wikipedia.org/wiki/Kaggle <b>This information was copied from wikipedia.</b><br />
<br><br />
<br><br />
<u><b>Below are some websites with more information and beginner tutorials</u>:</b></i></font><br />
* [https://elitedatascience.com/beginner-kaggle Beginner's Guide to Kaggle <b>(elitedatascience.com)</b>]<br />
* [https://www.youtube.com/c/kaggle Kaggle: YouTube <b>(youtube.com)</b>]<br />
* [https://www.analyticsvidhya.com/blog/2021/04/interesting-kaggle-datasets-every-beginner-in-data-science-should-try-out/ Kaggle Datasets to Try Out <b>(analyticsvidhya.com)</b>]<br />
* [https://towardsdatascience.com/how-to-use-kaggle-to-master-data-science-1467d45788ea How to use Kaggle to Master Data Science <b>(towardsdatascience.com)</b>]<br />
* [https://www.kaggle.com/ Kaggle <b>(kaggle.com)</b>]<br />
<br />
<br></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=TensorFlow&diff=36368TensorFlow2023-03-08T00:38:55Z<p>Mcintyre: </p>
<hr />
<div>== TensorFlow ==<br />
<font><i> TensorFlow is a free and open-source software library for machine learning and artificial intelligence. It can be used across a range of tasks but has a particular focus on training and inference of deep neural networks. TensorFlow can be used in a wide variety of programming languages, including Python, JavaScript, C++, and Java. This flexibility lends itself to a range of applications in many different sectors. [https://en.wikipedia.org/wiki/TensorFlow <b>This information was copied from wikipedia.</b>]<br />
<br><br />
<br><br />
<u><b>Below are some websites with more information and beginner tutorials</u>:</b></i></font><br />
* [https://www.guru99.com/what-is-tensorflow.html What is TensorFlow <b>(guru99.com</b>]<br />
* [https://www.youtube.com/@tensorflow TensorFlow: YouTube <b>(youtube.com</b>]<br />
* [https://www.geeksforgeeks.org/introduction-to-tensorflow/ Introduction to TensorFlow <b>(geeksforgeeks.org)</b>]<br />
* [https://www.tensorflow.org/ TensorFlow <b>(tensorflow.org)</b>]<br />
* [https://pypi.org/project/tensorflow/ TensorFlow <b>(pypi.org)</b>]<br />
* [https://www.tensorflow.org/decision_forests TensorFlow: Decision Forests <b>(tensorflow.org)</b>]<br />
* [https://www.tensorflow.org/decision_forests/tutorials TensorFlow: Decision Forests Tutorials <b>(tensorflow.org)</b>]<br />
* [https://github.com/tensorflow/tensorflow TensorFlow GitHub <b>(github.com)</b>]<br />
<br />
<br></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=Keras&diff=36367Keras2023-03-08T00:26:18Z<p>Mcintyre: /* Keras */</p>
<hr />
<div>== Keras ==<br />
<font><i> Keras is an open-source software library that provides a Python interface for artificial neural networks. Designed to enable fast experimentation with deep neural networks, it focuses on being user-friendly, modular, and extensible.<br />
Keras contains numerous implementations of commonly used neural-network building blocks such as layers, objectives, activation functions, optimizers, and a host of tools to make working with image and text data easier to simplify the coding necessary for writing deep neural network code. The code is hosted on GitHub. In addition to standard neural networks, Keras has support for convolutional and recurrent neural networks. It supports other common utility layers like dropout, batch normalization, and pooling. Keras allows users to productize deep models on smartphones (iOS and Android), on the web, or on the Java Virtual Machine. It also allows use of distributed training of deep-learning models on clusters of Graphics processing units (GPU) and tensor processing units (TPU). [https://en.wikipedia.org/wiki/Keras <b>This information was copied from wikipedia.</b>] <br />
<br><br />
<br><br />
<u><b>Below are some websites with more information and beginner tutorials</u>:</b></i></font><br />
* [https://www.infoworld.com/article/3336192/what-is-keras-the-deep-neural-network-api-explained.html What is Keras? <b>(infoworld.com)</b>]<br />
* [https://elitedatascience.com/keras-tutorial-deep-learning-in-python Keras Tutorial: The Ultimate Beginner’s Guide to Deep Learning in Python <b>(elitedatascience.com)</b>]<br />
* [https://www.javatpoint.com/keras Keras Tutorial <b>(javatpoint.com)</b>]<br />
* [https://keras.io/ Keras: Deep learning for humans <b>(keras.io)</b>]<br />
* [https://github.com/keras-team/keras Keras GitHub <b>(github.com)</b>]<br />
<br />
<br></div>Mcintyrehttps://zeus.phys.uconn.edu/wiki/index.php?title=Kaggle&diff=36366Kaggle2023-03-08T00:09:41Z<p>Mcintyre: Created page with "== Kaggle == <font><i> <br> <br> <u><b>Below are some websites with more information and beginner tutorials</u>:</b></i></font> * [https://www.learndatasci.com/tutorials/pytho..."</p>
<hr />
<div>== Kaggle ==<br />
<font><i><br />
<br><br />
<br><br />
<u><b>Below are some websites with more information and beginner tutorials</u>:</b></i></font><br />
* [https://www.learndatasci.com/tutorials/python-pandas-tutorial-complete-introduction-for-beginners/ Python Pandas Tutorial: A Complete Introduction for Beginners <b>(learndatasci.com)</b>]<br />
* [https://towardsdatascience.com/how-to-master-pandas-for-data-science-b8ab0a9b1042 How to Master Pandas for Data Science <b>(towardsdatascience.com)</b>]<br />
* [https://www.kaggle.com/learn/pandas Solve Short Hands-on Data Manipulation Challenges <b>(kaggle.com)</b>]<br />
* [https://machinelearningmastery.com/prepare-data-for-machine-learning-in-python-with-pandas/ Prepare Data for Machine Learning in Python with Pandas <b>(machinelearningmastery.com)</b>]<br />
* [https://towardsdatascience.com/data-manipulation-for-machine-learning-with-pandas-ab23e79ba5de Data Manipulation for Machine Learning with Pandas <b>(towardsdatascience.com)</b>]<br />
<br />
<br></div>Mcintyre